首頁  >  文章  >  資料庫  >  如何計算MySQL中兩個日期之間的工作天數?

如何計算MySQL中兩個日期之間的工作天數?

Barbara Streisand
Barbara Streisand原創
2024-11-02 04:16:02539瀏覽

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.
  • (DAFWYOEEKIF(date1 , date2)) = 1):檢查第一個日期是否為星期一。 。

以上是如何計算MySQL中兩個日期之間的工作天數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn