0

MySQL を使用して、特定の日付範囲で発生する日曜日の数をカウントしたい...私の問題は、指定された日付がテーブルにないことです...私が望むのは、クエリなしで SQL に計算させることだけです..例: SELECT DATEDIFF(日付 1、日付 2); もちろん、クエリを実行するテーブルは必要ありません。出来ますか?

4

1 に答える 1

0

はい、可能です。

date1 が date2 より大きいとします。

それで、

first_sunday = DATE_ADD(@date2, interval (8 - DAYOFWEEK(@date2)) mod 7 DAY)

は @date2 の次の日曜日です。@date2 が日曜日の場合、first_sunday は @date2 です。

last_sunday = DATE_ADD(@date1, interval 8 - DAYOFWEEK(@date1) DAY)

@date1 が日曜日であろうとなかろうと、last_sunday はカウントされません。

sunday_count = FLOOR(DATEDIFF(last_sunday, first_sunday)/7)

date2 から date1 までの日曜日の金額を返します。

クエリが 1 つだけ必要な場合は、次のようになります。

SELECT FLOOR(DATEDIFF(DATE_ADD(@date1, interval 8 - DAYOFWEEK(@date1) DAY), DATE_ADD(@date2, interval (8 - DAYOFWEEK(@date2)) mod 7 DAY))/7)
于 2013-06-06T07:49:28.390 に答える