Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come aggiungere un campo data/ora con un campo ora

DECLARE @d DATETIME = '2013-02-18T18:34:40.330',
        @t TIME(7)  = '00:11:00.0000000';

SELECT EndDate = DATEADD(SECOND, DATEDIFF(SECOND, 0, @t), @d);

Risultato:

EndDate
-----------------------
2013-02-18 18:45:40.330

Ora, non dovresti davvero memorizzare intervallo in un time colonna. time intende rappresentare un punto temporale , non una durata . Cosa succede quando l'intervallo è>=24 ore? Dovresti memorizzare l'ora di inizio e l'ora di fine di un evento (queste cose sono in genere rilevanti almeno quanto la durata) e puoi sempre calcolare la durata da quei punti.