【发布时间】:2010-05-06 19:08:41
【问题描述】:
我正在尝试列出过去 24 小时内每小时插入数据库的记录数。每行显示该小时插入的记录,以及几小时前的记录。
这是我现在的查询:
SELECT COUNT(*), FLOOR( TIME_TO_SEC( TIMEDIFF( NOW(), time)) / 3600 )
FROM `records`
WHERE time > DATE_SUB(NOW(), INTERVAL 24 HOUR)
GROUP BY HOUR(time)
ORDER BY time ASC
现在它返回:
28 23
62 23
14 20
1 4
28 3
19 1
这显示了 23 小时前的两行,当时它应该每小时只显示一列。 我认为这与使用 NOW() 而不是在一小时开始时获取时间有关,我不确定如何获取。
必须有更简单的方法来做到这一点。
【问题讨论】: