我正在尝试过滤过去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小时的计数。
任何帮助表示赞赏!
答案 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)