计数范围SQL之间的小时数

时间:2018-09-19 22:35:10

标签: sql date ssms

我要计算一些用户一个月的工作时间,唯一的方法是查看他们制作的作品的日期和小时。所以我得到了:

Select  a.EmployeeID, cast(a.fDate as Date) fDate, datepart(HOUR, a.fDate) fHour
From Table 
Group by a.EmployeeID, cast(a.fDate as Date), datepart(HOUR, a.fDate)

这给了我按小时生产日期的详细信息,但是我想知道该时间范围内的总小时数。例如:

Current Results

我知道员工xxx在2018年9月1日注册的生产时间是10:00 AM、11:00AM 12:00 PM和1:00 PM,因此结果为4小时。每个员工的工作日都不同,所以这就是我认为可以计算出此价格的唯一方法...

帮助?

1 个答案:

答案 0 :(得分:2)

您可以使用fDate的最小值和最大值的DATEDIFF,按EmployeeId和a.fDate的日期分组吗?

例如:

Select  a.EmployeeID, cast(a.fDate as Date) as fDate, min(a.fDate) as TimeIn, max(a.fDate) as TimeOut, (DATEDIFF(mi, min(a.fDate), max(a.fDate)) / 60) as Hours
From MyTable a
Group by a.EmployeeID, cast(a.fDate as Date)