MySQLで現在時刻から○日後のデータを作る
テストデータを作る際に「現在時刻 ± X日」のデータを登録したかったのでSQLのみで実現する方法を調べた。
MySQL5.7で確認。
DATE_SUB, DATE_ADDとINTERVALを組み合わせることで実現できる。
INSERT INTO
`posts` (
`title`,
`slug`,
`published_at`
)
VALUES
(
'post title 1',
'test1',
DATE_SUB(NOW(), INTERVAL 1 DAY) -- 1日前
),
(
'post title 2',
'test2',
DATE_ADD(NOW(), INTERVAL 1 DAY) -- 1日後
);