SQLで日付を整形するDATE_FORMAT関数について記載しています。
対応データベース:MySQL
DATE_FORMAT関数の文法
SELECT DATE_FORMAT(日付,書式) FROM テーブル
引数 | 日付 | 文字列型 |
書式 | 文字列型 | |
返値 | 文字型 整形後の日付が戻ります。 |
DATE_FORMAT関数は指定された日付と時刻を指定された書式で整形した後、文字列で戻します。指定する書式は文字列なのでシングルクォート「’」で囲みます。時間の部分のみを整形する場合はTIME_FORMAT関数を使います。
MySQLの日付要素
書式 | 意味 |
---|---|
%M | 英語の月名(January、December) |
%W | 英語の曜日(Sunday、Saturday) |
%D | 英語の序数付き日(0th、1st、2nd、・・) |
%Y | 4桁の年 |
%y | 2桁の年 |
%X | 週の年。週の最初の日は日曜日。4桁の数値。%Vと共に使用 |
%x | 週の年。週の最初の日は月曜日。4桁の数値。%vと共に使用 |
%a | 英語の曜日の省略形(Sun、Sat・・・) |
%d | 日(00..31) |
%e | 日(0..31) |
%m | 月(00..12) |
%c | 月(0..12) |
%b | 英語の月名の省略形(Jan..Dec) |
%j | 年始からの日数(001..366) |
%H | 24時間表現の時間(00..23) |
%k | 24時間表現の時間(0..23) |
%h or %I | 12時間表現の時間(01..12) |
書式 | 意味 |
---|---|
%h or %I | 12時間表現の時間(01..12) |
%l | 12時間表現の時間(1..12) |
%i | 分、数値(00..59) |
%r | 12時間表現の時刻(hh:mm:ss[AP]M) |
%T | 24時間表現の時刻(hh:mm:ss) |
%S or %s | 秒(00..59) |
%p | AM or PM |
%w | 曜日(0=Sunday..6=Saturday) |
%U | 週の始まりを日曜とした場合の年間の通算週(00..53) |
%u | 週の始まりを月曜とした場合の年間の通算週(00..53) |
%V | 週の始まりを日曜とした場合の年間の通算週(01..53)’%X’と共に使用 |
%v | 週の始まりを月曜とした場合の年間の通算週(01..53)’%x’と共に使用 |
%% | ‘%’の文字自身 |
実行例
MySQLの実行例
日付の形式を「年/月/日」の形式に整形
/* MySQL 2023年1月15日を2023/01/15の形式にするサンプル */
SELECT DATE_FORMAT('2023-12-31','%Y/%m/%d');

現在日時の形式を「年/月/日」の形式に整形
/* MySQL 現在日時を年/月/日の形式にするサンプル */
SELECT DATE_FORMAT(CURRENT_TIMESTAMP,'%Y/%m/%d');

現在日時の形式を「年/月/日 時:分:秒」の形式に整形
/* MySQL 現在日時を年/月/日 時:分:秒の形式にするサンプル */
SELECT DATE_FORMAT(CURRENT_TIMESTAMP,'%Y/%m/%d %T');

現在日時の形式を「年月日 時分秒」の形式に整形
/* MySQL 現在日時を「年月日 時分秒」の形式にするサンプル */
SELECT DATE_FORMAT(CURRENT_TIMESTAMP,'%Y年%m月%d日 %H時%i分%s秒');

現在日時の形式を「年月日」の形式に整形
/* MySQL 現在日時を「年月日」の形式にするサンプル */
SELECT DATE_FORMAT(CURRENT_TIMESTAMP,'%Y%m%d');

現在日時の形式を日が曜日、月が英語名形式に整形
/* MySQL 現在日時を日が曜日、月が英語名形式にするサンプル */
SELECT DATE_FORMAT(CURRENT_TIMESTAMP,'%W %M %Y');
