2016-09-21 126 views
0

我目前正在尝试计算数据库中两个日期之间的时差,以小时为单位。例如,上午6点到上午8点是2个小时。SQL Server试图计算两个日期的小时差

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

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

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

是的,我承认两者都显示不同的日期。我希望能够计算上午8点到下午12点之间的时差,但我一直无法这样做。目前,我的计算返回-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。

回答

2

DATEPART可以只提取小时值:

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

工作可爱。我曾想过这样做。应该早点完成! –