SQL道場 日付時刻関数 TIME_FORMAT関数

SQL SQL
この記事は約3分で読めます。

SQLで時刻を整形するTIME_FORMAT関数について記載しています。

対応データベース:MySQL

TIME_FORMAT関数の文法

SELECT TIME_FORMAT(日付,書式) FROM テーブル
引数日付文字列型
書式文字列型
返値文字型 整形後の時刻が戻ります。

TIME_FORMAT関数は指定された日付と時刻のうち時刻の部分のみを指定された書式で整形した後に文字列で戻します。指定する書式は文字列なので「’」(シングルクォート)で囲みます。時間の部分のみだけではなく、日付と時刻を整形する場合はDATE_FORMAT関数を使います。

これは DATE_FORMAT() 関数と同様に使用されますが、format 文字列には時間、分、秒、マイクロ秒の書式指定子のみを含めることができます。 その他の指定子では、NULL 値または 0 が生成されます。

time 値に 23 よりも大きな時間部分が含まれる場合は、%H および %k 時間書式指定子によって、0..23 の通常の範囲よりも大きな値が生成されます。 その他の時間書式指定子では、時間値モジュロ 12 が生成されます。

https://dev.mysql.com/doc/refman/8.0/ja/date-and-time-functions.html#function_time-format

MySQLの日付要素

書式意味
%M英語の月名(January、December)
%W英語の曜日(Sunday、Saturday)
%D英語の序数付き日(0th、1st、2nd、・・)
%Y4桁の年
%y2桁の年
%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)
%H24時間表現の時間(00..23)
%k24時間表現の時間(0..23)
%h or %I12時間表現の時間(01..12)
書式意味
%h or %I12時間表現の時間(01..12)
%l12時間表現の時間(1..12)
%i分、数値(00..59)
%r12時間表現の時刻(hh:mm:ss[AP]M)
%T24時間表現の時刻(hh:mm:ss)
%S or %s秒(00..59)
%pAM or PM
%w曜日(0=Sunday..6=Saturday)
%U週の始まりを日曜とした場合の年間の通算週(00..53)
%u週の始まりを月曜とした場合の年間の通算週(00..53)
%V週の始まりを日曜とした場合の年間の通算週(01..53)’%X’と共に使用
%v週の始まりを月曜とした場合の年間の通算週(01..53)’%x’と共に使用
%%‘%’の文字自身

実行例

MySQLの実行例

時刻の形式を「AM ・PM時:分:秒」の形式に整形

/* MySQL 15:20:00を「PM3:20:00」の形式にするサンプル */
SELECT TIME_FORMAT('15:20:00','%p%h:%i:%s');
MySQL 15:20:00を「PM3:20:00」の形式にするサンプル実行結果

現在日時の時間のみの形式を「AM ・PM時:分:秒」の形式に整形

/* MySQL 現在日時の時間のみを「AM ・PM3:20:00」の形式にするサンプル */
SELECT TIME_FORMAT(CURRENT_TIMESTAMP,'%p%h:%i:%s');
MySQL 現在日時の時間のみを「AM ・PM3:20:00」の形式にするサンプル 実行結果
タイトルとURLをコピーしました