ホームページ >データベース >mysql チュートリアル >組み込み関数を使用せずに MySQL で 2 つの日付の間の営業日を計算する方法は?
MySQL で 2 つの日付間の営業日を計算する方法
Excel などの多くの一般的なスプレッドシート プログラムには、2 つの日付の間の営業日数を計算する NETWORKDAYS() 関数が用意されています。ただし、MySQL には同様の組み込み関数がありません。
解決策: 数学的表現
MySQL で 2 つの日付間の営業日数を計算するには、次の式を使用できます:
<code class="language-sql">5 * (DATEDIFF(@E, @S) DIV 7) + MID('0123444401233334012222340111123400001234000123440', 7 * WEEKDAY(@S) + WEEKDAY(@E) + 1, 1)</code>
説明:
DATEDIFF(@E, @S)
: 終了日 (@E) と開始日 (@S) の間の日数の差を計算します。 DIV 7
: 日付間の週数を取得するには、差を 7 で割ります。 5
: 週数に 5 を掛けて、営業日数を取得します。 MID()
: 開始日と終了日に基づいて、文字列から関連する数値のサブセットを抽出します。式で使用される特定の文字列は、さまざまな開始日と終了日の組み合わせの間の営業日数から構築されます。 前提条件と制限事項:
例:
'2023-03-06' (@S) から '2023-03-10' (@E) までの営業日数を計算するには、次のクエリを使用できます:
<code class="language-sql">SELECT 5 * (DATEDIFF('2023-03-10', '2023-03-06') DIV 7) + MID('0123444401233334012222340111123400001234000123440', 7 * WEEKDAY('2023-03-06') + WEEKDAY('2023-03-10') + 1, 1) AS num_working_days;</code>
このクエリは、2 つの日付の間の営業日数 (5) を返します。
以上が組み込み関数を使用せずに MySQL で 2 つの日付の間の営業日を計算する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。