MySQLではプログラミング言語のように日時に四則演算子である、+や-を使って計算することができる。あとはどのくらいの期間の指定にINTERVAL
を使ってあげればおk
確認環境
- MySQL 5.7
1時間前の日時を取得する
SELECT NOW() - INTERVAL 1 HOUR;
7日後の日時を取得する
SELECT NOW() + INTERVAL 7 DAY;
whereでも使用可能
INTERVAL
はwhere句でも使用可能。以下の例はpostsのうち、現在時刻から5日以内のものを取得するSQL
SELECT * FROM posts WHERE created_at > NOW() + 5 DAY;
INTERVALで使用できる単位一覧
複数形ではないので注意
- MICROSECOND
- SECOND
- MINUTE
- HOUR
- DAY
- WEEK
- MONTH
- YEAR