Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So fügen Sie ein Datetime-Feld mit einem Zeitfeld hinzu

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);

Ergebnis:

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

Jetzt sollten Sie Intervall wirklich nicht speichern in einer time Säule. time soll einen Zeitpunkt darstellen , keine Dauer . Was passiert, wenn das Intervall>=24 Stunden beträgt? Sie sollten die Start- und Endzeit eines Ereignisses speichern (diese Dinge sind normalerweise mindestens so relevant wie die Dauer), und Sie können die Dauer immer anhand dieser Punkte berechnen.