Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como adicionar um campo de data e hora com um 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

Agora, você realmente não deveria estar armazenando interval em um time coluna. time destina-se a representar um ponto no tempo , não uma duração . O que acontece quando o intervalo é>=24 horas? Você deve armazenar a hora de início e a hora de término de um evento (essas coisas geralmente são pelo menos tão relevantes quanto a duração), e você sempre pode calcular a duração desses pontos.