sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo agregar un campo de fecha y hora con un campo de hora

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

Resultado:

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

Ahora, realmente no deberías estar almacenando interval en un time columna. time está destinado a representar un punto en el tiempo , no una duración . ¿Qué sucede cuando el intervalo es>=24 horas? Debe almacenar la hora de inicio y la hora de finalización de un evento (esas cosas suelen ser al menos tan relevantes como la duración), y siempre puede calcular la duración a partir de esos puntos.