Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment ajouter un champ datetime avec un champ heure

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

Résultat :

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

Maintenant, vous ne devriez vraiment pas stocker intervalle dans un time colonne. time est censé représenter un point dans le temps , pas une durée . Que se passe-t-il lorsque l'intervalle est>=24 heures ? Vous devez stocker l'heure de début et l'heure de fin d'un événement (ces éléments sont généralement au moins aussi pertinents que la durée), et vous pouvez toujours calculer la durée à partir de ces points.