ホームページ > データベース > mysql チュートリアル > MySQL で 2 つの日付間の平日の数を計算するにはどうすればよいですか?

MySQL で 2 つの日付間の平日の数を計算するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-02 04:16:02
オリジナル
613 人が閲覧しました

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

週末を除く日付間の日数の計算 (MySQL)

MySQL で 2 つの日付の差を求めるには、DATEDIFF() 関数を使用するのが簡単です。ただし、計算から週末を除外する必要がある場合は、より特殊なアプローチが必要です。

これを実現するには、次の 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>
ログイン後にコピー

この関数は 2 つの日付を受け取ります。

そのコンポーネントの内訳は次のとおりです。

  • ABS(DATEDIFF(date2, date1) )) 1: 2 つの日付間の絶対差を計算し、正の結果を保証します。
  • `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 < date2, date1, date2)) = 1): 最初の日付が月曜日かどうかを確認します。
  • (DAYOFWEEK(IF(date1 > date2, date1, date2)) = 7): 2 番目の日付が日曜日かどうかを確認します。

これらのコンポーネントを組み合わせることで、関数は 2 つの日付の間の日数を正確に計算します。週末を除きます。

以上がMySQL で 2 つの日付間の平日の数を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート