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.