sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man lägger till datetime-fält med ett tidsfält

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

Resultat:

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

Nu borde du verkligen inte lagra intervall inom en time kolumn. time är tänkt att representera en tidpunkt , inte en varaktighet . Vad händer när intervallet är>=24 timmar? Du bör lagra start- och sluttid för en händelse (dessa saker är vanligtvis minst lika relevanta som varaktigheten), och du kan alltid beräkna varaktigheten från dessa punkter.



  1. GraphQL - returnera beräknad typ beroende på argument

  2. ska jag aktivera c3p0-satspoolning?

  3. PostgreSQL var allt i array

  4. MySQL-fråga för att söka i ett fält med JSON-sträng