SQL Server尝试计算两个日期的小时差

时间:2016-09-21 22:56:35

标签: sql sql-server

我目前正在尝试以小时计算数据库中两个日期之间的时差。例如,上午6:00到上午8:00是2小时。

我已经解决了这个问题,但似乎我遇到的问题是当我尝试计算数据库中两个条目之间的时间时。

2016-09-21 08:00:00.000 is StartTime

2016-08-16 12:00:00.000 is End Time

是的,我知道两个都显示了不同的日期。我希望能够计算上午8:00到中午12:00之间的时差,但我无法这样做。目前,我的计算正在返回-20。

我非常感谢能够解决这个问题。

此外,这是我当前的查询。

SELECT TherapyGroups.Name as GroupName,
COUNT(*) as NumberAttended,
SUM(DATEDIFF(hh, TherapyDailyNotes.StartTime, TherapyDailyNotes.EndTime)) % 24 as ContactHours
FROM TherapyDailyNotes

另外,我正在使用SQL Server 2008,但我无法转换为TIME。

1 个答案:

答案 0 :(得分:2)

DATEPART只能提取小时值:

SELECT 
  ContactHours = abs(
                   datepart(hour, TherapyDailyNotes.StartTime) - 
                   datepart(hour, TherapyDailyNotes.EndTime)
                 )
FROM TherapyDailyNotes