我要计算一些用户一个月的工作时间,唯一的方法是查看他们制作的作品的日期和小时。所以我得到了:
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)
这给了我按小时生产日期的详细信息,但是我想知道该时间范围内的总小时数。例如:
我知道员工xxx在2018年9月1日注册的生产时间是10:00 AM、11:00AM 12:00 PM和1:00 PM,因此结果为4小时。每个员工的工作日都不同,所以这就是我认为可以计算出此价格的唯一方法...
帮助?
答案 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)