MariaDBでは、HOUR() は、指定された時刻式から時間を返す組み込みの日付と時刻の関数です。
時間を抽出する時間である1つの引数を受け入れます。
時刻の値の場合、0の範囲の数値として時間を返します。 23へ 。ただし、TIMEの範囲 値ははるかに大きくなる可能性があるため、戻り値は23よりもはるかに大きくなる可能性があります。 。
負の時間が指定されている場合でも、戻り値は常に正です。
構文
構文は次のようになります:
HOUR(time)
time は時間を取得するための時間式です。
例
次に例を示します:
SELECT HOUR('10:30:45'); 結果:
+------------------+
| HOUR('10:30:45') |
+------------------+
| 10 |
+------------------+ 日時の値
日時の値でも機能します:
SELECT HOUR('2030-02-01 10:30:45'); 結果:
+-----------------------------+
| HOUR('2030-02-01 10:30:45') |
+-----------------------------+
| 10 |
+-----------------------------+ より長い時間
TIME 値の範囲は'-838:59:59.999999'です。 to '838:59:59.999999' 。
したがって、時間の部分は23よりもはるかに高くなる可能性があります :
SELECT HOUR('578:30:45'); 結果:
+-------------------+
| HOUR('578:30:45') |
+-------------------+
| 578 |
+-------------------+ ネガティブタイム
負の時間は正の結果を返します。
例
SELECT HOUR('-578:30:45'); 結果:
+--------------------+
| HOUR('-578:30:45') |
+--------------------+
| 578 |
+--------------------+ 範囲外の時間
'-838:59:59.999999'の範囲外の時間値 to '838:59:59.999999' リターン838 。
例:
SELECT HOUR('978:30:45'); 結果(垂直出力を使用):
+-------------------+
| HOUR('978:30:45') |
+-------------------+
| 838 |
+-------------------+ 現在の日付
NOW()を渡すことができます 現在の時刻を使用する日時引数として:
SELECT
NOW(),
HOUR(NOW()); 結果:
+---------------------+-------------+ | NOW() | HOUR(NOW()) | +---------------------+-------------+ | 2021-05-16 10:50:02 | 10 | +---------------------+-------------+
無効な引数
無効な引数が渡されると、HOUR() nullを返します :
SELECT HOUR('Ten Thirty AM'); 結果:
+-----------------------+
| HOUR('Ten Thirty AM') |
+-----------------------+
| NULL |
+-----------------------+ 引数がありません
HOUR()を呼び出す 引数の数が間違っているか、引数を渡さないと、エラーが発生します:
SELECT HOUR(); 結果:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
そして別の例:
SELECT HOUR('10:30:45', '06:30:45'); 結果:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '06:30:45')' at line 1