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

Barbara Streisand
发布: 2024-11-02 04:16:02
原创
541 人浏览过

How to Calculate the Number of Weekdays Between Two Dates in MySQL?

计算不包括周末的日期之间的天数 (MySQL)

使用 DATEDIFF() 函数可以直接确定 MySQL 中两个日期之间的差异。但是,如果您需要从计算中排除周末,则需要更专门的方法。

要实现此目的,请考虑使用以下 MySQL 函数:

<code class="mysql">CREATE FUNCTION TOTAL_WEEKDAYS(date1 DATE, date2 DATE)
RETURNS INT
RETURN ABS(DATEDIFF(date2, date1)) + 1
     - ABS(DATEDIFF(ADDDATE(date2, INTERVAL 1 - DAYOFWEEK(date2) DAY),
                    ADDDATE(date1, INTERVAL 1 - DAYOFWEEK(date1) DAY))) / 7 * 2
     - (DAYOFWEEK(IF(date1 < date2, date1, date2)) = 1)
     - (DAYOFWEEK(IF(date1 > date2, date1, date2)) = 7);</code>
登录后复制

此函数需要两个日期作为输入并返回它们之间的天数,不包括周末(即周六和周日)。

以下是其组成部分的细分:

  • ABS(DATEDIFF(date2, date1) )) 1: 计算两个日期之间的绝对差,确保结果为正。
  • `ABS(DATEDIFF(ADDDATE(date2, INTERVAL 1 - DAYOFWEEK(date2) DAY),

                  ADDDATE(date1, INTERVAL 1 - DAYOFWEEK(date1) DAY))) / 7 * 2`: Calculates the number of weekend days between the two dates.
    登录后复制
  • (DAYOFWEEK(IF(date1
  • (DAYOFWEEK(IF(date1 > date2, date1, date2)) = 7):检查第二个日期是否是星期日。

通过组合这些组件,该函数可以准确计算两个日期之间的天数,周末除外。

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!