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日後
    );

参考


Related #mysql

Dockerでpt-query-digestを使う

コンテナのおかげで手軽にslowlog分析ができるようになった

mysqld: [Warning] World-writable config file '/etc/mysql/conf.d/my.cnf' is ignored.

windowsだとvolume mountすると777になるのでDockerfileを作ってcopyするようにした

SQLのbetweenは以上から以下の範囲になる

いざ使うときに間違えそうなのでメモ

mysqlのテーブル一覧を取得するワンライナー

sedの使い方をいつも忘れる

Sequel ProでJSON型を含むテーブルのexport/importを行う

test build版を使う必要があった