概要
日付、時刻のフォーマットにはDATE_FORMAT()、TIME_FORMAT()を使う。
DATE_FORMAT(date, format);
TIME_FORMAT(time, format);
date
、time
にはDATETIME
型の値を入れてもよい。
書式の雛形
以下のデータで日付・時刻の書式を確認する。
1 2 3 4 5 6 7 8 |
mysql> SELECT * FROM test_datetime; +---------------------+ | datetime | +---------------------+ | 2020-12-31 23:59:59 | | 2021-01-01 00:01:02 | +---------------------+ 2 rows in set (0.00 sec) |
日付
日付4or2桁でゼロ埋め | %Y %m %d |
日付ゼロ埋めなし | %y %c %e |
月名(短縮/全部) | %b / %M |
曜日名(番号/短縮/全部) | %w / %a / %W |
※曜日番号は日曜~土曜が0~6
1 2 3 4 5 6 7 8 9 10 11 12 13 |
mysql> SELECT -> DATE_FORMAT(datetime, '%Y年%m月%d日') AS '日付0埋め', -> DATE_FORMAT(datetime, '%y年%c月%e日') AS '日付0なし', -> DATE_FORMAT(datetime, '%b : %M') AS 月名, -> DATE_FORMAT(datetime, '%w : %a : %W') AS 曜日 -> FROM test_datetime; +----------------+--------------+----------------+--------------------+ | 日付0埋め | 日付0なし | 月名 | 曜日 | +----------------+--------------+----------------+--------------------+ | 2020年12月31日 | 20年12月31日 | Dec : December | 4 : Thu : Thursday | | 2021年01月01日 | 21年1月1日 | Jan : January | 5 : Fri : Friday | +----------------+--------------+----------------+--------------------+ 2 rows in set (0.00 sec) |
時刻
24時間制の時刻(ゼロ埋め) | %H |
24時間制の時刻(ゼロ埋めなし) | %k |
12時間制の時刻 | %h |
分(ゼロ埋め) | %i |
秒(ゼロ埋め) | %s |
AM/PM | %p |
※12時間制の時刻は0時/12時の扱いに一貫性がない。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
mysql> SELECT -> TIME_FORMAT(datetime, '%H時%i分%s秒') AS '0埋め24H', -> TIME_FORMAT(datetime, '%k時%m分%s秒') AS '0なし24H', -> TIME_FORMAT(datetime, '%h時%i分%S秒 %p') AS '0埋め12H', -> TIME_FORMAT(datetime, '%l時%i分%S秒 %p') AS '0なし12H' -> FROM test_datetime; +--------------+--------------+-----------------+-----------------+ | 0埋め24H | 0なし24H | 0埋め12H | 0なし12H | +--------------+--------------+-----------------+-----------------+ | 23時59分59秒 | 23時00分59秒 | 11時59分59秒 PM | 11時59分59秒 PM | | 00時01分02秒 | 0時00分02秒 | 12時01分02秒 AM | 12時01分02秒 AM | +--------------+--------------+-----------------+-----------------+ 2 rows in set (0.00 sec) |