📅  最后修改于: 2023-12-03 14:44:28.144000             🧑  作者: Mango
在 MySQL 中,HOUR() 函数用于从一个时间表达式中提取小时数。它的语法如下:
HOUR(time)
其中,time 是一个时间表达式。
当使用 HOUR() 函数时,它会返回一个整数,表示时间表达式中的小时数。例如:
SELECT HOUR('12:30:45');
-- 返回 12
如上所示,我们可以使用 HOUR() 函数来提取时间表达式 '12:30:45' 中的小时数,结果是 12。
需要注意的是,HOUR() 函数只能用于时间表达式。如果我们尝试对一个日期类型的列使用 HOUR() 函数,则会返回 NULL。例如:
SELECT HOUR('2021-01-01');
-- 返回 NULL,因为 '2021-01-01' 是一个日期字符串,而不是时间字符串。
如果我们想要获取一个日期类型列中的小时数,应该使用其他函数,例如 DATE_FORMAT() 或 EXTRACT()。
在使用 HOUR() 函数时,还需要注意时区的问题。HOUR() 函数提取的小时数是基于连接的时区的。如果您希望获取 GMT 时间中的小时数,应该使用 CONVERT_TZ() 函数或在执行查询时设置正确的时区。
总的来说,在处理 MySQL 中的时间数据时,我们会经常用到 HOUR() 函数,特别是在统计数据中需要提取小时数的情况下。但要注意时区的影响,避免出现意外的结果。