In questo articolo spiegherò come inserire i minuti in una colonna time (o datetime) partendo da un intero.
Come inserire i minuti in una colonna time (o datetime) partendo da un intero
Un collega mi ha recentemente sottoposto un problema: doveva inserire in una colonna di tipo “time” (MSSQL 2008) un intero (in minuti) derivanti da un calcolo; ad esempio, doveva inserire il valore “90” e il valore risultatante sarebbe dovuto essere “01:30:00.00”.
Come si può vedere qui http://msdn.microsoft.com/en-us/library/ms187928.aspx, non è possibile convertire direttamente un int in time.
Si può però usare un trucco come questo:
INSERT INTO [TimeTable] ([Tempo]) VALUES (convert(time,dateadd(n,90,'00:00:00.00')))
dove “90” è il numero di minuti, secondo l’esempio; ovviamente si inserirà il valore reale.
Con la versione MSSQL 2005, dove il tipo di dato “time” non esiste, si può usare un ragionamento analogo; in questo caso però nel campo di tipo “datetime” risulterà presente anche la frazione “date”.