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'