【mysql】日時データのDATE_FORMATを使って成形する方法
2022.03.20
DATE_FORMATを使用すると、日時データを様々な形式で成形することができます。
目次
1. はじめに
サンプルでは、NOW()関数で取得したdatetime(日時)を成形して表示してみます。
SELECT NOW()
NOW() |
---|
2022-03-20 18:34:42 |
2. DATE_FORM()の使い方
DATE_FORMATは、以下の様に使います。
DATE_FORMAT( 日時, フォーマット )
日時は、datetimeまたは、dateを指定します。
フォーマットは以下の書式を組み合わせて作成します。
2-1. フォーマット
書式 | 意味 | 表示形式 |
---|---|---|
%Y | 年 | 西暦4桁(例:2000,2022) |
%y | 年 | 西暦の下2桁(例:00,22) |
%c | 月 | 1~12 |
%m | 月 | 01~12 |
%e | 日 | 1~31 |
%d | 日 | 01~31 |
%k | 時 | 0~23 |
%H | 時 | 00~23 |
%i | 分 | 00~59 |
%s | 秒 | 00~59 |
%w | 曜日 |
0~6 (0:日、1:月、2:火、3:水、4:木、5:金、6:土) |
3. 使用例
dateを年月日付きにする。
SELECT DATE_FORMAT( '2022-03-22', '%Y年%m月%d日' )
DATE_FORMAT( '2022-03-22', '%Y年%m月%d日' ) |
---|
2022年03月22日 |
datetimeを年月日時分秒付きにする。
SELECT DATE_FORMAT( '2022-03-22 19:00:00', '%Y年%m月%d日 %H時%i分%s秒' )
DATE_FORMAT( '2022-03-22 19:00:00', '%Y年%m月%d日 %H時%i分%s秒' ) |
---|
2022年03月22日 19時00分00秒 |
NOW関数で取得したdatetimeを指定したフォーマットで成形する。
SELECT DATE_FORMAT( NOW(), '%Y年%m月%d日 %H時%i分%s秒' )
DATE_FORMAT( NOW(), '%Y%m%d' ) |
---|
2022年03月22日 19時11分04秒 |
4. まとめ
サンプルでは、文字列のdateやdatetimeの成形、NOW関数で取得したdatetimeを成形するだけでしたが、dateもしくはdatetimeカラムのデータに対してみ使用できるので、集計等で使い道があると思います。
例えば、datetime型のカラムに対して、年毎に集計をかけてみる。
SELECT
DATE_FORMAT( datetime_column, '%Y' ),
count(*)
FROM
hoge
GROUP BY
DATE_FORMAT( datetime_column, '%Y' )
ORDER BY
DATE_FORMAT( datetime_column, '%Y' )
などなど