我在表中有很多记录。我只需要选择那些unix时间戳= 21、22、23小时(等于小时)的人
答案 0 :(得分:0)
OP's timestamp是Unix时间,以秒为单位,他needs to match the exact hours像21:00:00
一样,依此类推。
FROM_UNIXTIME()
函数将Unix时间戳转换为MySQL日期时间格式'YYYY-MM-DD HH:MM:SS' HOUR()
函数从MySQL日期时间获取小时值。同样,我们使用Minute()
和Second()
函数分别从日期时间获取分钟和秒值。要匹配小时值,分钟和秒值应为零。尝试:
SELECT * FROM your_table
WHERE HOUR(FROM_UNIXTIME(your_time_column)) IN (21, 22, 23)
AND MINUTE(FROM_UNIXTIME(your_time_column)) = 0
AND SECOND(FROM_UNIXTIME(your_time_column)) = 0
如果时间列采用MySQL datetime格式,我们可以直接使用Hour()
函数:
SELECT * FROM your_table
WHERE HOUR(your_time_column) IN (21,22,23)
AND MINUTE(your_time_column) = 0
AND SECOND(your_time_column) = 0