- 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 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。