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