DECLARE @bt DATETIME,@et DATETIME SELECT @bt='20090801',@et='20090913' ;WITH t AS ( SELECT DATEDIFF(dd,@bt,@et)+1 AS [days], DATEPART(w,@bt+@@DATEFIRST-1) AS [wd] --@@DATEFIRST-1 按周一为一周的第一天查询 ) SELECT [Workdays]=[days]/7*5+[days]%7 - CASE WHEN 6 BETWEEN [wd] AND [wd]+[days]%7-1 THEN 1 ELSE 0 END - CASE WHEN 7 BETWEEN [wd] AND [wd]+[days]%7-1 THEN 1 ELSE 0 END FROM t /* Workdays ----------- 30 */
计算两个日期段之间有多少个工作日
最新推荐文章于 2025-01-10 12:00:00 发布
本文介绍了一个使用SQL Server T-SQL编写的脚本,该脚本能够计算两个日期之间的总工作日数,排除周末及节假日。通过定义开始日期和结束日期,并使用WITH语句递归计算每个日期的工作日状态。
323

被折叠的 条评论
为什么被折叠?



