Juste une mise en garde à ajouter à propos de DateDiff, il compte le nombre de fois que vous franchissez la limite que vous spécifiez comme vos unités, il est donc sujet à des problèmes si vous recherchez un laps de temps précis, par exemple
select datediff (m, '20100131', '20100201')
donne une réponse de 1, car il a traversé la limite de janvier à février, donc même si la durée est de 2 jours, datediff renverrait une valeur de 1 - il a traversé 1 limite de date.
select datediff(mi, '2010-01-22 15:29:55.090' , '2010-01-22 15:30:09.153')
Donne une valeur de 1, encore une fois, il a dépassé la limite des minutes une fois, donc même s'il est d'environ 14 secondes, il serait renvoyé comme une seule minute lors de l'utilisation des minutes comme unités.