MySQL hour()函数
1. 简介
在MySQL中,hour()
函数是用来获取给定时间表达式的小时部分的函数。它可以用于提取时间(时间戳或时间字符串)的小时数值,并返回一个整数。
2. 语法
hour(expr)
expr
:一个日期/时间表达式,可以是时间戳或时间字符串,在函数内部会被自动转换为时间类型。
3. 返回值
hour()
函数返回一个整数,代表给定时间表达式的小时部分。范围是从0到23。
4. 实例演示
让我们通过一些实例来了解hour()
函数的用法。
4.1 提取当前时间的小时部分
SELECT HOUR(NOW());
-- 结果: 18 (假设当前时间为下午6点)
上述示例中,使用NOW()
函数获取当前时间,并利用HOUR()
函数提取其小时部分。
4.2 提取时间戳的小时部分
SELECT HOUR('2010-07-16 12:30:45');
-- 结果: 12
上述示例中,我们给定了一个时间戳字符串,并使用HOUR()
函数提取其小时部分。
4.3 提取日期字符串的小时部分
SELECT HOUR('2022-11-05');
-- 结果: 0
上述示例中,我们给定了一个日期字符串,并使用HOUR()
函数提取其小时部分。由于日期字符串中没有指定具体的时间,所以返回值为0。
4.4 提取NULL值的小时部分
SELECT HOUR(NULL);
-- 结果: NULL
上述示例中,我们使用HOUR()
函数提取了一个NULL值的小时部分。由于NULL不代表具体的时间,所以返回值也为NULL。
5. 使用场景
hour()
函数在许多场景下都很有用。下面列举了一些常见的使用场景。
5.1 查询某一小时内的数据
假设我们有一张orders
表,其中有一个order_time
字段表示订单的时间。我们希望查询某一小时内的订单。
SELECT *
FROM orders
WHERE HOUR(order_time) = 14;
上述示例中,我们使用了HOUR()
函数来提取order_time
字段的小时部分,并将其与需要查询的小时进行比较。
5.2 按小时统计数据
假设我们有一张logs
表,其中有一个log_time
字段表示日志的时间。我们希望按小时统计每个小时的日志数量。
SELECT HOUR(log_time) as hour, COUNT(*) as count
FROM logs
GROUP BY HOUR(log_time);
上述示例中,我们使用了HOUR()
函数来提取log_time
字段的小时部分,并按照小时进行分组。然后,使用COUNT(*)
函数来计算每个小时的日志数量。
6. 总结
在本文中,我们详细介绍了MySQL中的hour()
函数。我们了解了它的语法、返回值以及一些实际应用场景。