【发布时间】:2011-11-14 12:58:41
【问题描述】:
恐怕这可能是一个非常令人尴尬的简单问题 - 但我的思绪完全停留在这个时间。
我有一张表,其中存储了不同人进行的活动的数量,以及它发生的时间。
我想创建一个接受此人姓名作为参数的报告,并显示从当前时间戳 (now()) 开始的过去 24 小时内该人每小时的活动数。
现在,
SELECT hour(TimeStamp), activities FROM tbl1
WHERE timestamp >= DATE_SUB(NOW(), INTERVAL 24 HOUR) AND Name = ?
GROUP BY hour(timestamp)
仅在有任何活动时才返回给我。但是,我想要一个完整的 24 小时细分,当没有活动时为零。
即我来了
Hour | No. of Activities
1 | 34
4 | 22
9 | 86
但我想要
Hour | No. of Activities
1 | 34
2 | 0
3 | 0
4 | 22
5 | 0
... etc.
我该怎么做?
(示例中的小时顺序无关)
【问题讨论】:
-
你应该在你的应用逻辑中处理这个问题。
-
如果当前时间是 5:30,您希望第一个小时是从 4:30 到 5:30 还是从 5 到 5:30?
标签: mysql sql reporting-services time timestamp