に最終更新
HOUR
説明
HOUR 関数は、日時または時刻の式から時の部分を抽出します。DATE/DATETIME/TIMESTAMP_NS および TIME 型の入力に対応し、その時を表す値を返します。
DATETIME 型(例: '2023-10-01 14:30:00')の場合、戻り値は 0~23 の範囲です(24 時間表記)。 TIME 型(例: '456:26:32')の場合、戻り値は 24 を超えることがあり、範囲は [0,838] です。
この関数の動作は、MySQL の HOUR 関数 と同じです。
構文
HOUR(`<date_or_time_expr>`)
パラメータ
| パラメータ | 説明 |
|---|---|
<date_or_time_expr> | 有効な日付または時刻の式。DATE、DATETIME、TIMESTAMP_NS、TIME に対応します。DATE 型の入力は 00:00:00 として扱われます。具体的な形式については、DATETIME の変換、DATE の変換、TIME の変換を参照してください。 |
戻り値
入力式の時の部分を表す整数型(INT)を返します。
- DATETIME 型の場合、0~23 の整数を返します。
- TIMESTAMP_NS 型の場合、0~23 の整数を返します。
- DATE 型の場合、0 を返します。
- TIME 型の場合、0~838 の整数を返します(TIME 型の範囲に対応)。負の時刻については、時の部分の絶対値を返します。
- 入力引数が NULL の場合、NULL を返します。
例
-- Extract hour from datetime (24-hour format)
select
hour('2018-12-31 23:59:59') as last_hour,
hour('2023-01-01 00:00:00') as midnight,
hour('2023-10-01 12:30:45') as noon;
+-----------+----------+------+
| last_hour | midnight | noon |
+-----------+----------+------+
| 23 | 0 | 12 |
+-----------+----------+------+
-- Extract hour from TIME type (supports over 24 or negative values)
select
hour(cast('14:30:00' as time)) as normal_hour,
hour(cast('25:00:00' as time)) as over_24,
hour(cast('456:26:32' as time)) as large_hour,
hour(cast('-12:30:00' as time)) as negative_hour,
hour(cast('838:59:59' as time)) as max_hour,
hour(cast('-838:59:59' as time)) as min_hour;
+-------------+---------+------------+---------------+----------+----------+
| normal_hour | over_24 | large_hour | negative_hour | max_hour | min_hour |
+-------------+---------+------------+---------------+----------+----------+
| 14 | 25 | 456 | 12 | 838 | 838 |
+-------------+---------+------------+---------------+----------+----------+
-- Extract hour from date type, returns 0
select hour("2022-12-12");
+--------------------+
| hour("2022-12-12") |
+--------------------+
| 0 |
+--------------------+
select hour('14:30:00') as normal_hour;
+-------------+
| normal_hour |
+-------------+
| 14 |
+-------------+
-- Input parameter is NULL, returns NULL
mysql> select hour(NULL);
+------------+
| hour(NULL) |
+------------+
| NULL |
+------------+