首页  >  文章  >  数据库  >  如何计算MySQL中两个日期之间的工作日数?

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

Barbara Streisand
Barbara Streisand原创
2024-11-02 04:16:02542浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn