【mysql】UNIX_TIMESTAMP関数を使って日時計算
2022.03.21
UNIX_TIMESTAMP関数を使うと日時の計算が秒べ―スでできる。
目次
1. 使い方
UNIX_TIMESTAMP関数でdatetime型の値からunixタイムスタンプ(1970-01-01 00:00:00からの秒数)を取得する。
unixタイムスタンプに対して、秒値を加減算する。(1分なら60、10分なら600、1日なら14400などの秒数)
加減算したunixタイムスタンプを、FROM_UNIXTIME関数でdatetime型に戻す。
2. サンプル
現在日時の4日前の日時を取得する。
SELECT NOW(),FROM_UNIXTIME( UNIX_TIMESTAMP( NOW() ) - 60 * 60 * 24 * 4 )
NOW() | FROM_UNIXTIME( UNIX_TIMESTAMP( NOW() ) - 60 * 60 * 24 * 4 ) |
---|---|
2022-03-21 19:31:11 | 2022-03-17 19:31:11 |
FROM_UNIXTIME関数はフォーマット指定も可能。
現在日時の4日前の日を「YYYY年mm月dd日」形式で取得する。
フォーマットは、関連記事参照。
SELECT NOW(),FROM_UNIXTIME( UNIX_TIMESTAMP( NOW() ) - 60 * 60 * 24 * 4, '%Y年%m月%d日' )
NOW() | FROM_UNIXTIME( UNIX_TIMESTAMP( NOW() ) - 60 * 60 * 24 * 4, '%Y年%m月%d日' ) |
---|---|
2022-03-21 19:31:11 | 2022年03月17日 |