DATE_FORMAT(date,format)

DATE_FORMAT(date,format)

date 値を format ストリングに基づいてフォーマットします。

次の指定子は format ストリングで使用されていることもあります。‘%’ 文字は、書式指定子の前に必要なものです。

指定子 解説
%a 簡略曜日名 (Sun..Sat)
%b 簡略月名 (Jan..Dec)
%c 月、数字 (0..12)
%D 英語の接尾辞を持つ日にち (0th, 1st, 2nd, 3rd, …)
%d 日にち、数字 (00..31)
%e 日にち、数字 (0..31)
%f マイクロ秒 (000000..999999)
%H 時間 (00..23)
%h 時間 (01..12)
%I 時間 (01..12)
%i 分、数字 (00..59)
%j 通日 (001..366)
%k 時間 (0..23)
%l 時間 (1..12)
%M 月名 (January..December)
%m 月、数字 (00..12)
%p AM または PM
%r 時間、12 時間単位 (hh:mm:ssAM または PM が続く )
%S 秒 (00..59)
%s 秒 (00..59)
%T 時間、24 時間単位 (hh:mm:ss)
%U 週 (00..53) 、週の開始は日曜日
%u 週 (00..53)、週の開始は月曜日
%V 週 (01..53) 、週の開始は日曜日で、%X と使用
%v 週 (01..53) 、週の開始は月曜日で、%x と使用
%W 曜日名 (Sunday..Saturday)
%w 曜日 (0=Sunday..6=Saturday)
%X 年間の週、週の始まりは日曜日、週、数字、4 桁 ; %V と使用
%x 年間の週、週の始まりは月曜日、数字、4 桁、%v と使用
%Y 年、数字、4 桁
%y 年、数字 ( 2 桁 )
%% リテラル ‘%’ 文字
%x x 、上記にないすべての ‘x

MySQL は '2004-00-00' のような不完全な日付の格納を許可するため、月と日にちの指定子の範囲は 0 から始まります。

MySQL 5.1.12 から、日にちおよび月の名称に使用される言語と、省略後は、lc_time_names システム環境変数 ( 項4.10.9. 「MySQL サーバのローケル サポート」 ) の値によって管理されます。

MySQL 5.1.15 からは、DATE_FORMAT() は文字セットを持つストリングと、character_set_connection および collation_connection によって提示された照合を戻し、非 ASCII 文字を含む月と曜日の名前を戻せるようになりました。5.1.15 の前は、戻り値はバイナリ ストリングでした。

mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
        -> 'Saturday October 1997'
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');
        -> '22:23:00'
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00',
                          '%D %y %a %d %m %b %j');
        -> '4th 97 Sat 04 10 Oct 277'
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00',
                          '%H %k %I %r %T %S %w');
        -> '22 22 10 10:23:00 PM 22:23:00 00 6'
mysql> SELECT DATE_FORMAT('1999-01-01', '%X %V');
        -> '1998 52'
mysql> SELECT DATE_FORMAT('2006-06-00', '%d');
        -> '00'