MySQL选择记录,其中timetamp =等于小时

时间:2018-10-06 19:15:25

标签: mysql mysqli

我在表中有很多记录。我只需要选择那些unix时间戳= 21、22、23小时(等于小时)的人

1 个答案:

答案 0 :(得分:0)

OP's timestamp是Unix时间,以秒为单位,他needs to match the exact hours21: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