我需要做一份报告。该报告跟踪用户随着时间的推移在终端上单击的位置,这些单击存储在数据库中的 2 个表中。我需要找到一个优雅的解决方案来遍历日期范围并为一天中的每个小时进行报告。
我坚持使用最好和最优雅的方式循环数小时(即使该小时没有记录点击,报告也会显示从 00:00 到 23:00 的小时数)。
所以我的输出需要是(例如)
00:00 - 34 clicks
01:00 - 22 clicks
02:00 - 91 clicks
03:00 - 4 Clicks
...
...
23:00 - 17 Clicks
我正在考虑在 PHP $startHour = 00:00; 中声明 2 个变量;$endHour = $startHour + 01:00;
并做一个循环增加 $startHour unitl 它匹配结束时间,但我不知道我是否可以像这样增加小时变量。
日期以这种格式存储:2012-11-22 09:17:29
这是我的mysql查询:
SELECT tbl_xboxstats.sessionend_date,
tbl_xboxstatsaux.XboxStatsId,
tbl_xboxstatsaux.ItemId,
tbl_xboxstats.UnitId,
tbl_xboxstats.UIId,
WEEK( tbl_xboxstats.sessionend_date ) AS WeekNumber,
Count(tbl_xboxstatsaux.ItemId) AS Count
FROM tbl_xboxstats
INNER JOIN tbl_xboxstatsaux ON tbl_xboxstats.id = tbl_xboxstatsaux.XboxStatsId
WHERE tbl_xboxstats.sessionend_date
BETWEEN '2012-11-22 "' . $startHour . '"'
AND '2012-11-22"' . $endHour . '"'
GROUP BY tbl_xboxstatsaux.XboxStatsId
LIMIT 0 , 30