以小时为单位的日期差异

时间:2013-09-11 19:32:19

标签: sql sql-server date time

我搜索了很多线程,无法找到我需要的答案。我有两个日期时间列:

BOOKDATIME                BOOKDATIME_OFF 
2013-06-01 12:14:00.000   2013-06-03 07:09:00.000  

我想要做的只是显示两个日期之间的总小时和分钟差异。

当我使用时:

CONVERT(TIME, BOOKDATIME_OFF - BOOKDATIME) 
                  AS HourMinuteSecond

我收到错误消息:无法按时调用方法

2 个答案:

答案 0 :(得分:1)

DATEDIFF(HH,BOOKDATIME, BOOKDATIME_OFF)

答案 1 :(得分:1)

您可以使用DATEDIFF()和除法/模数除法来获得总时数/分钟数的差异:

SELECT Hours = DATEDIFF(Minute,'2013-06-01 12:14:00.000','2013-06-03 07:09:00.000')/60
      ,Minutes = DATEDIFF(Minute,'2013-06-01 12:14:00.000','2013-06-03 07:09:00.000')%60

如果DATETIME字段总是少于一天,那么您还可以减去日期时间并投射为时间:

DECLARE @date DATETIME = GETDATE()
       ,@date2 DATETIME = DATEADD(MINUTE,25,GETDATE())
SELECT CAST(@date2 - @date AS TIME)