SQL: inserire i minuti in una colonna time (o datetime) partendo da un intero

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”.

Replica

%d blogger hanno fatto clic su Mi Piace per questo: