概要
日付、時刻のフォーマットには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) |