我正在尝试筛选过去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小时的计数。
感谢任何帮助!

最佳答案

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

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)

关于php - 在过去24小时内按时间戳过滤结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8437988/

10-13 00:59