MySQLで日付データを指定の形にフォーマットして出力する方法を説明してみたいと思います。
フォーマットするにはDATE_FORMAT関数を使って、出力したいフォーマットを指定するだけです。
DATE_FORMAT(日付データ, フォーマット)で指定のフォーマットで出力されます。
SELECT
DATE_FORMAT('2021-8-5 1:3:4', '%Y/%m/%d %H:%i:%s')
実行結果
2021/08/05 01:03:04
指定できるフォーマットは下の図のようなものがあります。
| フォーマット | 説明 | 例 |
|---|---|---|
| %y | 年 2桁 | 2021 → 21 |
| %Y | 年 4桁 | 2021 → 2021 |
| %c | 月 0埋めなし | 8 → 8 |
| %m | 月 0埋めあり | 8 → 08 |
| %e | 日 0埋めなし | 5 → 5 |
| %d | 日 0埋めあり | 5 → 05 |
| %k | 時 0埋めなし | 1 → 1 |
| %H | 時 0埋めあり | 1 → 01 |
| %i | 分 0埋めあり | 3 → 03 |
| %s | 秒 0埋めあり | 4 → 04 |
| %p | AM/PM | 18時 → PM |
| %M | 月 英語 | 8 → August |
| %W | 曜日 英語 | Thursday |
| %w | 曜日 数字 | 日曜~土曜 → 0~6 |
実際にいろいろなフォーマットで出力するとこのようになります。
DATE_FORMAT('2021-8-5 1:3:4', '%y/%c/%e %k:%i:%s %p %M %W')
↓
21/8/5 1:03:04 AM August Thursday
DATE_FORMAT('2021-8-5 1:3:4', '%Y/%m/%d %H:%i:%s %w')
↓
2021/08/05 01:03:04 4
大文字と小文字で意味が変わってくるものもあるので、使うときは注意して使いましょう。

