日付の差の計算で週末を除く: MySQL ソリューション
MySQL ユーザーは、週末を除いた 2 つの日付の差を正確に計算するために、多くの場合、次のことを求めます。ガイダンス。標準の DATEDIFF 関数は、基本的な日付の違いには便利ですが、週末を省略する必要がある場合には不十分です。
この問題に対処するには、WEEKDAY 関数を使用してカスタム関数を作成できます。
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);
この関数はいくつかの MySQL 関数を使用します。
これらの関数を組み合わせることで、TOTAL_WEEKDAYS 関数は 2 つの入力日付間の絶対差を計算し、範囲内の土曜日と日曜日の数を減算し、範囲の開始日と終了日を調整します。 .
使用例:
週末を除いた 2 つの日付の差を計算するには:
SELECT TOTAL_WEEKDAYS('2013-08-03', '2013-08-21') AS weekdays1, TOTAL_WEEKDAYS('2013-08-21', '2013-08-03') AS weekdays2;
結果:
| WEEKDAYS1 | WEEKDAYS2 | ------------------------- | 13 | 13 |
以上がMySQL で週末を除いた日付の違いを計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。