Как получить общее количество часов между двумя датами в sql-сервере?

Рассмотрим две даты 2010-03-18 22:30:45 и 2010-03-19 03:30:15.... Как получить количество часов и минут между двумя датами на сервере sql.....

Ответы

Ответ 1

@codeka ответил с часами (из вашего названия), но в теле вашего вопроса вы просили часы и минуты, вот один из способов

 select DATEDIFF(hh, @date1, @date2) as Hours_Difference,   
    DATEDIFF(mi,DATEADD(hh,DATEDIFF(hh, @date1, @date2),@date1),@date2) as Minutes_Difference

Что это делает в первой части, это то, что показала @codeka. Он дает вам датированный период между двумя датами в фактические полные часы. Второй термин в sql дает датировку в минутах между (первая дата + прошедшие часы) и вторая дата. Вы должны устранить часы из уравнения в части минут или вы получите фактические минуты между датами. Datediff и его допустимые идентификаторы Datepart можно исследовать здесь:
http://msdn.microsoft.com/en-us/library/ms189794.aspx

Ответ 2

Вам нужна функция DATEDIFF:

SELECT DATEDIFF(hh, @date1, @date2)