我需要做一個報告。該報告跟蹤用戶點擊終端的時間,這些點擊被存儲在數據庫中的兩個表格上。我需要找到一個優雅的解決方案來循環使用日期範圍,併爲每天的每個小時執行一次報告。從24小時制的每小時日期範圍中選擇日期
我堅持最好和最優雅的方式來循環播放幾小時(即使沒有記錄那個小時的點擊,報告將顯示從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日9點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
我認爲最安全的方式,可能是你的起始日期轉換爲時間戳,加上3600到它(1小時),然後再改它變成日期格式。 – monkeymatrix
Yout表結構/模式是什麼? – shadyyx
@monkeymatrix這是一個可能的解決方案。也許你應該把它作爲答案?在此期間,我會放棄它。 – user1882752