【MySQL】N日後を取得する。

DATE_ADD関数を用いる。

下記例。

■投稿してから30日以上経過している投稿を取得する。(時刻まで厳密に判定する場合)

select * from posts where date_add(insert_date, INTERVAL 30 DAY) <= now()

■上記と同等で、時刻は見ず日付のみで判定する場合。

select * from posts where date_add(DATE(insert_date), INTERVAL 30 DAY) <= CURDATE();

ちなみにdate_add関数はマイナスの数値も指定可能。その場合日付を遡ってくれる。