Skip to content

HOUR()

Returns the hour for time. The range of the return value is 0 to 23 for time-of-day values. However, the range of TIME values actually is much larger, so HOUR can return values greater than 23. Returns NULL if time is NULL.

Description

Returns the hour for time. The range of the return value is 0 to 23 for time-of-day values. However, the range of TIME values actually is much larger, so HOUR can return values greater than 23. Returns NULL if time is NULL.

Syntax

> HOUR(time)

Arguments

Arguments Description
time Required. A value that represents time or timestamp.

Examples

drop table if exists t1;
create table t1(a datetime, b timestamp);
insert into t1 values("2022-07-01", "2011-01-31 12:00:00");
insert into t1 values("2011-01-31 12:32:11", "1979-10-22");
insert into t1 values(NULL, "2022-08-01 23:10:11");
insert into t1 values("2011-01-31", NULL);
insert into t1 values("2022-06-01 14:11:09","2022-07-01 00:00:00");
insert into t1 values("2022-12-31","2011-01-31 12:00:00");
insert into t1 values("2022-06-12","2022-07-01 00:00:00");

mysql> select hour(a),hour(b) from t1;
+---------+---------+
| hour(a) | hour(b) |
+---------+---------+
|       0 |      12 |
|      12 |       0 |
|    NULL |      23 |
|       0 |    NULL |
|      14 |       0 |
|       0 |      12 |
|       0 |       0 |
+---------+---------+
7 rows in set (0.00 sec)

mysql> select * from t1 where hour(a)>hour(b);
+---------------------+---------------------+
| a                   | b                   |
+---------------------+---------------------+
| 2011-01-31 12:32:11 | 1979-10-22 00:00:00 |
| 2022-06-01 14:11:09 | 2022-07-01 00:00:00 |
+---------------------+---------------------+
2 rows in set (0.01 sec)