MariaDBでは、MAKETIME()
は、引数として指定された時間、分、秒に基づいて時間値を返す組み込みの日付と時刻の関数です。
構文
構文は次のようになります:
MAKETIME(hour,minute,second)
例
次に例を示します:
SELECT MAKETIME(08, 30, 45);
結果:
+----------------------+ | MAKETIME(08, 30, 45) | +----------------------+ | 08:30:45 | +----------------------+
そしてもう1つ:
SELECT MAKETIME(23, 8, 1);
結果:
+--------------------+ | MAKETIME(23, 8, 1) | +--------------------+ | 23:08:01 | +--------------------+
範囲
hour
の場合 引数が-838
の範囲外です 838
へ 、値は警告とともに切り捨てられます。
minute
の場合 またはsecond
引数が0
の範囲外です 59
へ 、結果はnull
です 、および警告が表示されます(MariaDBのドキュメントには、範囲が0
であると記載されています 60
へ 、しかし、これは私のテストには当てはまりません。さらに、MariaDBのドキュメントには、MariaDBの時間値の範囲は'-838:59:59.999999'
であるとも記載されています。 to '838:59:59.999999'
。
とにかく、許容範囲の上限にある値を持つ時間の例を次に示します。
SELECT MAKETIME(838, 59, 59.999999);
結果:
+------------------------------+ | MAKETIME(838, 59, 59.999999) | +------------------------------+ | 838:59:59.999999 | +------------------------------+
これらの値はまだ許容範囲内であったため、有効な時間値を取得しました。
無効な分と秒
minute
の許容範囲を超えると、次のようになります。 およびsecond
引数:
SELECT
MAKETIME(00, 60, 00),
MAKETIME(00, 00, 60);
結果:
+----------------------+----------------------+ | MAKETIME(00, 60, 00) | MAKETIME(00, 00, 60) | +----------------------+----------------------+ | NULL | NULL | +----------------------+----------------------+ 1 row in set, 1 warning (0.001 sec)
結果はnull
です 両方とも、警告付き。
警告を確認しましょう:
SHOW WARNINGS;
結果:
+---------+------+-----------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------+ | Warning | 1292 | Truncated incorrect seconds value: '60' | +---------+------+-----------------------------------------+
無効な時間
次に、hour
で許容範囲外になるとどうなるか見てみましょう。 引数:
SELECT MAKETIME(900, 00, 00);
結果:
+-----------------------+ | MAKETIME(900, 00, 00) | +-----------------------+ | 838:59:59 | +-----------------------+ 1 row in set, 1 warning (0.000 sec)
このシナリオでは、時間値が時間、分、秒を上限範囲にクリップして返されます。警告も返されます。
警告を確認しましょう:
SHOW WARNINGS;
結果:
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '900:00:00' | +---------+------+---------------------------------------------+
引数がありません
MAKETIME()
を呼び出す 引数の数が間違っているか、引数を渡さないと、エラーが発生します:
SELECT MAKETIME();
結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MAKETIME'
そして別の例:
SELECT MAKETIME( 12, 1 );
結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MAKETIME'
デートをする
SEC_TO_TIME()
も参照してください 秒数から日付値を作成するため。
MAKEDATE()
も参照してください 年と日から日付値を作成するため。