1
A
回答
0
测试数据
Declare @T TABLE (EmpID INT , Enter DATETIME , [Exit] DATETIME)
INSERT INTO @T VALUES
(1 , '2017-01-22 09:26:00.000' , '2017-01-22 15:25:00.000')
,(1 , '2017-01-21 10:15:00.000' , '2017-01-21 12:00:00.000')
,(1 , '2017-01-20 09:05:00.000' , '2017-01-20 13:05:00.000')
,(1 , '2017-01-21 10:15:00.000' , '2017-01-21 12:00:00.000')
,(2 , '2017-01-22 09:26:00.000' , '2017-01-22 15:26:00.000')
,(2 , '2017-01-21 10:15:00.000' , '2017-01-21 12:30:00.000')
,(2 , '2017-01-20 09:05:00.000' , '2017-01-20 13:05:00.000')
查询
Select EmpID
, CONVERT(VARCHAR(10) ,DATEADD(DAY, - (DATEPART(WEEKDAY, Enter)-1), Enter) , 104) [WeekStart]
, CONVERT(VARCHAR(10) ,DATEADD(DAY, 7- (DATEPART(WEEKDAY, Enter)), Enter) , 104) [WeekEnd]
, CAST(SUM(DATEDIFF(minute,Enter, [Exit]))/60.00 AS DECIMAL(10,2)) [Hours Worked]
FROM @T
GROUP BY EmpID
, CONVERT(VARCHAR(10) ,DATEADD(DAY, - (DATEPART(WEEKDAY, Enter)-1), Enter) , 104)
, CONVERT(VARCHAR(10) ,DATEADD(DAY, 7- (DATEPART(WEEKDAY, Enter)), Enter) , 104)
结果集
╔═══════╦════════════╦════════════╦══════════════╗
║ EmpID ║ WeekStart ║ WeekEnd ║ Hours Worked ║
╠═══════╬════════════╬════════════╬══════════════╣
║ 1 ║ 15.01.2017 ║ 21.01.2017 ║ 7.50 ║
║ 1 ║ 22.01.2017 ║ 28.01.2017 ║ 5.98 ║
║ 2 ║ 15.01.2017 ║ 21.01.2017 ║ 6.25 ║
║ 2 ║ 22.01.2017 ║ 28.01.2017 ║ 6.00 ║
╚═══════╩════════════╩════════════╩══════════════╝
+0
您救了我,非常感谢。 – rebrikk
相关问题
- 1. 办公室SQL查询长运行时间
- 2. 办公室办公室文件在办公室办公室文件2007年登录提示只在产品
- 3. SQL查询,计算时间
- 4. 在Laravel计算查询时间?
- 5. PHP计算两个日期之间的办公时间数
- 6. 开放式办公室计算动态单元格选择
- 7. 反向列自由报办公室计算的订购
- 8. 开放式办公室电子表格计算
- 9. 办公室365 Powershell
- 10. 计算SQL查询的执行时间?
- 11. 将办公室加载项部署到办公室365
- 12. 将办公室VSTO插件发布到办公室商店
- 13. SQL Server:按小时计算办公室中的客户端数量
- 14. powershell exchange 2003:查询ActiveDirectory的ActiveSync,办公室和描述?
- 15. 办公室excel 2016与办公室excel 2016相比,有没有什么办公室可用?
- 16. 在没有办公室的PC上工作的Visual Studio办公室参考?
- 17. 办公室互操作:使用Office 2007在计算机上开发2003 PIA
- 18. '哟办公室'长时间没有响应
- 19. 办公室365 - 邮箱
- 20. 办公室发展 - 字
- 21. 办公室应用程序
- 22. 办公室插件表现
- 23. 办公室RibbonUI ApplicationMenu图标
- 24. 办公室2013便携版
- 25. 办公室移动脚本
- 26. VSTO加入办公室365
- 27. 办公室网页词Addin
- 28. Excel以小时文本计算时间的公式计算时间
- 29. 用于计算时间差的公式
- 30. 基于时间戳计算时间跨度的SQL查询
查找了'DATEPART'&'DATEDIFF' –
要获取周数,请使用此SELECT DATEPART(周,@Dt) 然后使用周数创建查询并进行聚合。 – Habeeb
对于几个小时,你可以做sum(datediff等)在完成之前,确保你知道如何处理部分时间。对于开始和结束部分的一周,日历表就派上用场了。这使您能够指定星期是星期日还是星期一开始,还是指定星期,或者您的业务指定的任何星期。 –