我對SQL不太熟練,所以希望這裏有人能幫助我。試圖從SQL中獲取24小時的數據
我在我的表中有一個date_of_post列,看起來像這樣(示例)2015-08-31 11:00:00
。
我使用INTERVAL 1 DAY
獲得最後24小時。然而,它的回報似乎超過了過去24小時。這是我使用來獲取我的數據
SELECT DATE_ADD(date(t.date_of_post),
INTERVAL hour(t.date_of_post) HOUR) AS dateTime,
count(*) as entries
FROM `soc_stat` t
WHERE `main_tag` = 'morgenmad'
AND t.date_of_post > DATE_SUB(CURDATE(), INTERVAL 1 DAY)
GROUP BY date(t.date_of_post), hour(t.date_of_post)
查詢並返回以下:
2015-08-31 11:00:00 = 11
2015-08-31 12:00:00 = 2
2015-08-31 13:00:00 = 3
2015-08-31 14:00:00 = 3
2015-08-31 15:00:00 = 1
2015-08-31 16:00:00 = 3
2015-08-31 17:00:00 = 2
2015-08-31 19:00:00 = 1
2015-09-01 04:00:00 = 1
2015-09-01 05:00:00 = 3
2015-09-01 06:00:00 = 9
2015-09-01 07:00:00 = 33
2015-09-01 08:00:00 = 38
2015-09-01 09:00:00 = 29
2015-09-01 10:00:00 = 13
2015-09-01 11:00:00 = 12
2015-09-01 12:00:00 = 6
2015-09-01 13:00:00 = 5
我不明白爲什麼11:00:00
,12:00:00
和13:00:00
在2015-08-31
和2015-09-01
存在。它不應該只返回最後24小時嗎?
檢查你的mysql的時區。它可能會保留默認值而不是實際的時區。 –
不匹配所選列和按列分組。 – jarlh