- Home ›
- MySQLの使い方 ›
- MySQL関数の使い方
DATE_FORMAT関数/TIME_FORMAT関数(日付または時刻を指定したフォーマットで整形する)
MySQL で DATE_FORMAT 関数を使用すると引数に指定した日付を表す値を指定のフォーマットで整形した文字列を取得することができます。また TIME_FORMAT 関数を使用すると時刻を表す値を指定のフォーマットで整形した文字列を取得することができます。ここでは MySQL における DATE_FORMAT 関数および TIME_FORMAT関数 関数の使い方について解説します。
(Last modified: )
DATE_FORMAT関数およびTIME_FORMAT関数関数の使い方
DATE_FORMAT 関数は引数に指定した日付の値を指定のフォーマットで整形した文字列を文字列を取得するために使用します。書式は次の通りです。
DATE_FORMAT(date,format)
対象の日付を表す文字列( date )を指定のフォーマット( format )に従って整形した文字列を取得します。
TIME_FORMAT 関数は引数に指定した時刻の値を指定のフォーマットで整形した文字列を文字列を取得するために使用します。書式は次の通りです。
TIME_FORMAT(time,format)
対象の時刻を表す文字列( time )を指定のフォーマット( format )に従って整形した文字列を取得します。
日付に関して指定できるフォーマットは次のとおりです。
指定子 | 説明 |
---|---|
%a | 簡略曜日名 (Sun..Sat) |
%b | 簡略月名 (Jan..Dec) |
%c | 月、数字 (0..12) |
%D | 英語のサフィクスを持つ日付 (0th, 1st, 2nd, 3rd, …) |
%d | 日、数字 (00..31) |
%e | 日、数字 (0..31) |
%j | 年間通算日 (001..366) |
%M | 月名 (January..December) |
%m | 月、数字 (00..12) |
%U | 週 (00..53)、日曜日が週の初日、WEEK() モード 0 |
%u | 週 (00..53)、月曜日が週の初日、WEEK() モード 1 |
%V | 週 (01..53)、日曜日が週の初日、WEEK() モード 2、%X とともに使用 |
%v | 週 (01..53)、月曜日が週の初日、WEEK() モード 3、%x とともに使用 |
%W | 曜日名 (Sunday..Saturday) |
%w | 曜日 (0=Sunday..6=Saturday) |
%Y | 年、数字、4 桁 |
%y | 年、数字 (2 桁) |
%% | リテラル 「%」 文字 |
%x | x (上記にないすべての 「x」) |
時刻に関して指定できるフォーマットは次のとおりです。
指定子 | 説明 |
---|---|
%f | マイクロ秒 (000000..999999) |
%H | 時間 (00..23) |
%h | 時間 (01..12) |
%I | 時間(01..12) |
%i | 分、数字 (00..59) |
%k | 時 (0..23) |
%l | 時 (1..12) |
%p | AM または PM |
%r | 時間、12 時間単位 (hh:mm:ss に AM または PM が続く) |
%S | 秒 (00..59) |
%s | 秒 (00..59) |
%T | 時間、24 時間単位 (hh:mm:ss) |
%% | リテラル 「%」 文字 |
%x | x (上記にないすべての 「x」) |
format には上記の指定子と文字列を組み合わせて指定してください。使い方はこのあとのサンプルをみてください。
-- --
それでは実際に試してみます。最初に日付に関して整形を行います。 %Y(年、数字、4 桁) %M(月名 (January..December) %d(日、数字 (00..31)) に整形してみます。
select date_format('2015-03-02', '%Y %M %d');
次に %b(簡略月名 (Jan..Dec)) %e(日、数字 (0..31)) %W(曜日名 (Sunday..Saturday)) に整形してみます。
select date_format('2015-01-03', '%b-%e(%W)');
今度は時刻に関して整形を行います。 %H(時間 (00..23)) %k(時 (0..23)) %s(秒 (00..59)) に整形してみます。
select time_format('21:45:02.205', '%H:%k:%s');
次に %p(AM または PM) %h(時間 (01..12)) に整形してみます。
select time_format('21:45:02.205', '%p %h');
元になる日付または時刻の値からフォーマットに従って整形した値を取得することができました。
-- --
date_format 関数および time_format 関数の使い方について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。