MySQLで指定日数前の日付を取得する場合、
DATE(DATE_ADD(NOW(), INTERVAL -日数 DAY))
で取得出来る。
createdateに日付を入れていて、最近7日以内に作られたレコードを求める場合、
SELECT * FROM my_table WHERE createdate >= DATE(DATE_ADD(NOW(), INTERVAL -7 DAY))
みたいになる。 ちなみに -0 DAYなら今日になる。
関連して、日付の曜日を取得する場合、
WEEKDAY(日付)
で取得する。 0が月曜で始まる。
今週の月曜日の日付は、
DATE(DATE_ADD(NOW(), INTERVAL -WEEKDAY(NOW()) DAY))
で取得出来る。
今週の月曜日からの記録を切り出す場合、
createdate >= DATE(DATE_ADD(NOW(), INTERVAL -WEEKDAY(NOW()) DAY))
で取得。
先週の月曜から金曜までの記録を切り出す場合、
createdate >= DATE(DATE_ADD(NOW(), INTERVAL -WEEKDAY(NOW())-7 DAY)) AND createdate < DATE(DATE_ADD(NOW(), INTERVAL -WEEKDAY(NOW())-3 DAY))
※BETWEENは以上以下。 時刻なしのDATEは0時0分0秒扱いだから1秒減算する必要がある。
(951)