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

Authentication plugin 'caching_sha2_password' cannot be loaded

認証プラグインをmysql_native_passwordに戻した

dockerのmysql8環境でmbind: Operation not permitted

cap_addを追加した

PrismaでMany-to-manyのテーブルを定義する

暗黙のルールにハマった

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

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

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

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