MariaDBでは、TIME_FORMAT()
は、指定されたフォーマット文字列に従って時刻値をフォーマットする組み込みの日付と時刻の関数です。
DATE_FORMAT()
と同様に機能します 関数。ただし、フォーマット文字列には、時間、分、秒のフォーマット指定子のみを含めることができます。
2つの引数が必要です。時間とフォーマット文字列。
構文
構文は次のようになります:
TIME_FORMAT(time,format)
time
時間の値とformat
フォーマット文字列です。受け入れ可能なフォーマット指定子のリストについては、MariaDBフォーマット文字列を参照してください。前述のように、時間、分、秒のフォーマット指定子のみが受け入れられます。他のすべての値はnull
を返します 。
例
次に例を示します:
SELECT TIME_FORMAT('10:30:45', '%H %i %S');
結果:
+-------------------------------------+ | TIME_FORMAT('10:30:45', '%H %i %S') | +-------------------------------------+ | 10 30 45 | +-------------------------------------+
ここでも同じですが、今回はより複雑な形式の文字列を提供します:
SELECT TIME_FORMAT(
'10:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result;
結果:
+--------------------------------------+ | Result | +--------------------------------------+ | 10 hours, 30 minutes, and 45 seconds | +--------------------------------------+
より長い時間
TIME
値の範囲は'-838:59:59.999999'
です。 to '838:59:59.999999'
。
したがって、時間の部分は23
よりもはるかに高くなる可能性があります :
SELECT TIME_FORMAT(
'810:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result;
結果:
+---------------------------------------+ | Result | +---------------------------------------+ | 810 hours, 30 minutes, and 45 seconds | +---------------------------------------+
負の時間値
時間値が負の例を次に示します。
SELECT TIME_FORMAT(
'-810:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result;
結果:
+----------------------------------------+ | Result | +----------------------------------------+ | -810 hours, 30 minutes, and 45 seconds | +----------------------------------------+
範囲外の時間
ただし、範囲外の時間値を指定すると、警告とともにその範囲の上限が返されます。
SELECT TIME_FORMAT(
'910:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result;
結果:
+---------------------------------------+ | Result | +---------------------------------------+ | 838 hours, 59 minutes, and 59 seconds | +---------------------------------------+ 1 row in set, 1 warning (0.003 sec)
警告を確認しましょう:
SHOW WARNINGS;
結果:
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '910:30:45' | +---------+------+---------------------------------------------+
無効な引数
無効な引数が渡された場合、TIME_FORMAT()
null
を返します 警告付き:
SELECT TIME_FORMAT('Homer', 'Simpson');
結果:
+---------------------------------+ | TIME_FORMAT('Homer', 'Simpson') | +---------------------------------+ | NULL | +---------------------------------+ 1 row in set, 1 warning (0.009 sec)
警告を確認してください:
SHOW WARNINGS;
結果:
+---------+------+-------------------------------+ | Level | Code | Message | +---------+------+-------------------------------+ | Warning | 1292 | Incorrect time value: 'Homer' | +---------+------+-------------------------------+
無効なフォーマット文字列
フォーマット文字列には、時間、分、秒のフォーマット指定子のみを含めることができます。その他の形式指定子は、null
になります。 返される:
SELECT TIME_FORMAT('10:30:45', '%M %W');
結果:
+----------------------------------+ | TIME_FORMAT('10:30:45', '%M %W') | +----------------------------------+ | NULL | +----------------------------------+
引数がありません
TIME_FORMAT()
を呼び出す 引数の数が間違っているか、引数を渡さないと、エラーが発生します:
SELECT TIME_FORMAT();
結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_FORMAT'
そして別の例:
SELECT TIME_FORMAT('10:09:10');
結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_FORMAT'