首页 > 数据库 > mysql教程 > 如何计算SQL Server中两个日期之间的工作日数?

如何计算SQL Server中两个日期之间的工作日数?

Susan Sarandon
发布: 2025-01-21 23:21:17
原创
402 人浏览过

How to Calculate the Number of Workdays Between Two Dates in SQL Server?

计算 SQL Server 中日期之间的工作日

有效确定两个日期之间的工作日数(周一至周五)对于许多 SQL Server 应用程序至关重要。 这可以使用简洁的 T-SQL 表达式来完成。 以下公式假设标准周一至周五工作周:

<code class="language-sql">SELECT
    (DATEDIFF(day, @StartDate, @EndDate) + 1)
    - (DATEDIFF(week, @StartDate, @EndDate) * 2)
    - CASE WHEN DATENAME(weekday, @StartDate) = 'Sunday' THEN 1 ELSE 0 END
    - CASE WHEN DATENAME(weekday, @EndDate) = 'Saturday' THEN 1 ELSE 0 END</code>
登录后复制

这里,@StartDate@EndDate代表开始和结束日期。 计算首先找到总天数,然后减去周末天数。 它还处理开始日期是星期日或结束日期是星期六的边缘情况。

例如,使用 @StartDate = '2008/10/01'@EndDate = '2008/10/31',表达式产生:

<code>(DATEDIFF(day, '2008/10/01', '2008/10/31') + 1)
- (DATEDIFF(week, '2008/10/01', '2008/10/31') * 2)
- CASE WHEN DATENAME(weekday, '2008/10/01') = 'Sunday' THEN 1 ELSE 0 END
- CASE WHEN DATENAME(weekday, '2008/10/31') = 'Saturday' THEN 1 ELSE 0 END</code>
登录后复制

结果为 21,代表给定日期之间的 21 个工作日。

请记住:此计算不考虑公共假期。 对于包括假期在内的更全面的解决方案,需要涉及假期表的更复杂的查询。

以上是如何计算SQL Server中两个日期之间的工作日数?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板