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

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

DDD
发布: 2025-01-21 23:42:10
原创
784 人浏览过

How to Calculate Workdays Between Dates in SQL Server?

使用 SQL Server 计算两个日期之间工作日的天数

在数据分析和报表生成中,确定两个给定日期之间工作日的天数是一项常见任务。在 SQL Server 中,可以使用 T-SQL 高效地执行此计算。

查询:

要计算两个日期之间(周一至周五)的工作日数,请执行以下查询:

<code class="language-sql">DECLARE @StartDate DATETIME;
DECLARE @EndDate DATETIME;
SET @StartDate = '2008/10/01';
SET @EndDate = '2008/10/31';

SELECT
   (DATEDIFF(dd, @StartDate, @EndDate) + 1)
  -(DATEDIFF(wk, @StartDate, @EndDate) * 2)
  -(CASE WHEN DATENAME(dw, @StartDate) = 'Sunday' THEN 1 ELSE 0 END)
  -(CASE WHEN DATENAME(dw, @EndDate) = 'Saturday' THEN 1 ELSE 0 END);</code>
登录后复制

说明:

  • DATEDIFF(dd, @StartDate, @EndDate) 1 计算两个日期之间包括起始日期和结束日期在内的总天数。
  • DATEDIFF(wk, @StartDate, @EndDate) * 2 从总天数中减去周末的天数(每星期 2 天)。
  • -(CASE WHEN DATENAME(dw, @StartDate) = 'Sunday' THEN 1 ELSE 0 END) 调整起始日期为周日的情况。
  • -(CASE WHEN DATENAME(dw, @EndDate) = 'Saturday' THEN 1 ELSE 0 END) 调整结束日期为周六的情况。

其他考虑因素:

要将节假日包含在计算中,需要创建一个单独的表来定义节假日日期,并将其加入到查询中。这需要额外的逻辑来减去指定期间内包含的节假日数量。

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

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