MySQLでは、TIME_FORMAT()
を使用できます 時間値をフォーマットする関数。
この関数は、DATE_FORMAT()
と同じように機能します 関数。ただし、値は時間、分、秒、マイクロ秒でのみフォーマットできます。
この関数で使用できるフォーマット指定子のリストについては、この記事の下部にある表を参照してください。
構文
構文は次のようになります:
TIME_FORMAT(time,format)
time
はフォーマットする時間値であり、format
はフォーマット文字列です(これにより、時間値が実際にフォーマットされる方法が決まります)。
例1-基本的な使用法
実例を示します。
SELECT TIME_FORMAT('14:35:27', '%r') AS 'Result';
結果:
+-------------+ | Result | +-------------+ | 02:35:27 PM | +-------------+
この例では、%r
を使用しています 時刻を12時間(hh:mm:ssの後にAMまたはPMが続く)としてフォーマットするフォーマット指定子。
例2–より具体的なフォーマット
前の例のようなより一般的なフォーマット指定子を使用することが適切でない場合は、必要なフォーマットを作成するのに役立つ他のさまざまなフォーマット指定子があります。
たとえば、前の形式は気に入っても秒を返したくない場合は、次のようにします。
SELECT TIME_FORMAT('14:35:27', '%h:%i %p') AS 'Result';
結果:
+----------+ | Result | +----------+ | 02:35 PM | +----------+
例3–24時間制
24時間制のフォーマット指定子もあります。 24時間制を使用して時刻をフォーマットする最も簡単な方法は次のとおりです。
SELECT TIME_FORMAT('14:35:27', '%T') AS 'Result';
結果:
+----------+ | Result | +----------+ | 14:35:27 | +----------+
例4–マイクロ秒
結果に小数秒の部分が含まれる例を次に示します。
SELECT TIME_FORMAT('14:35:27', '%H:%i:%s.%f') AS 'Result';
結果:
+-----------------+ | Result | +-----------------+ | 14:35:27.000000 | +-----------------+
もちろん、初期時間値にマイクロ秒を含めることもできます:
SELECT TIME_FORMAT('14:35:27.123456', '%H:%i:%s.%f') AS 'Result';
結果:
+-----------------+ | Result | +-----------------+ | 14:35:27.123456 | +-----------------+
例5–経過時間
時間データ型は24時間制に限定されません。また、経過時間を表すために使用することもできます。この関数を経過時間に使用する場合は、時間形式指定子が0〜23の範囲外の時間値でどのように機能するかを知っておく必要があります。
MySQLのドキュメントには次のように記載されています:
時間の値に
23
より大きい時間部分が含まれている場合 、%H
および%k
時間形式指定子は、通常の範囲の0..23
よりも大きい値を生成します 。他の時間形式指定子は、12
を法とする時間値を生成します。 。
デモンストレーションの例を次に示します。
SELECT TIME_FORMAT('24:00:00', '%H %k %h %I %l') AS '24', TIME_FORMAT('48:00:00', '%H %k %h %I %l') AS '48', TIME_FORMAT('100:00:00', '%H %k %h %I %l') AS '100', TIME_FORMAT('500:00:00', '%H %k %h %I %l') AS '500';
結果:
+----------------+----------------+-----------------+-----------------+ | 24 | 48 | 100 | 500 | +----------------+----------------+-----------------+-----------------+ | 24 24 12 12 12 | 48 48 12 12 12 | 100 100 04 04 4 | 500 500 08 08 8 | +----------------+----------------+-----------------+-----------------+
フォーマット指定子
次の指定子を使用して、戻り形式を指定できます。これらは、DATE_FORMAT()
で使用できるもののサブセットです。 働き。フォーマット値はパーセント記号(%
)で始まる必要があります 。
指定子 | 説明 |
---|---|
%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 ) |
%% | リテラル% キャラクター |