Как получить общее количество часов между двумя датами на сервере SQL? - PullRequest
16 голосов
/ 19 марта 2010

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

Ответы [ 3 ]

16 голосов
/ 19 марта 2010

@ 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

4 голосов
/ 19 марта 2010

Требуется функция DATEDIFF :

SELECT DATEDIFF(hh, @date1, @date2)
0 голосов
/ 16 июля 2018

Функция DATEDIFF решит вашу проблему получения разницы часов.

Вы можете проверить это как:

select DATEDIFF(hh, getdate()-1, GETDATE()) HoursDifference

Это даст вам результат 24 часов

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...