按时间戳过滤24小时内的结果

时间:2011-12-08 21:33:12

标签: php mysql

我正在尝试过滤过去24小时内每小时发现的行数。

我使用以下SQL查询,'landtime'是DateTime字段。

SELECT HOUR(landtime) as hour, COUNT(*) as total FROM ord_log WHERE landtime > DATE_SUB(NOW(), INTERVAL 24 HOUR) GROUP BY HOUR(landtime) ORDER BY HOUR(landtime)

样本数据集> http://pastebin.com/0rYBnePG

结果看起来像预期的那样,直到我查看它正在使用的数据。

它是在今天日期之前的几天/几周拉出日期,当时我只想要过去24小时的计数。

任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:0)

SELECT * FROM table WHERE day(data) = EXTRACT(day FROM (NOW() - INTERVAL 1 day))

答案 1 :(得分:-2)

无需使用函数,只需使用简单的数学运算:

SELECT HOUR(landtime) as hour, COUNT(*) as total FROM ord_log WHERE landtime > (CURRENT_TIMESTAMP - INTERVAL 1 DAY) GROUP BY HOUR(landtime) ORDER BY HOUR(landtime)