Рассмотрите две даты 2010-03-18 22:30:45
и 2010-03-19 03:30:15
.... Как получить число часов и минут, промежуточных эти две даты в SQL-сервере.....
@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
Вам нужна функция DATEDIFF:
SELECT DATEDIFF(hh, @date1, @date2)