我可以嘗試通過PHP來做這件事,但我認爲它可以簡單地在mySQL中完成。我在mySQL中有多行,日期時間超過了幾個小時。我想在這幾個小時內返回每一分鐘的計數。在幾分鐘的時間範圍內獲取mySQL行多個小時
GROUP BY MINUTE(date)
給了我60行,但它並沒有給我計數01:00:00 - 一時01分00秒不同於02:00:00和2時00分01秒。
這怎麼辦?
我可以嘗試通過PHP來做這件事,但我認爲它可以簡單地在mySQL中完成。我在mySQL中有多行,日期時間超過了幾個小時。我想在這幾個小時內返回每一分鐘的計數。在幾分鐘的時間範圍內獲取mySQL行多個小時
GROUP BY MINUTE(date)
給了我60行,但它並沒有給我計數01:00:00 - 一時01分00秒不同於02:00:00和2時00分01秒。
這怎麼辦?
MySQL的分鐘功能是從字面上採取的分鐘數和分組。嘗試通過隨後,小時,分鐘分組:
GROUP BY HOUR(date), MINUTE(date)
只需使用DATE_FORMAT
:
GROUP BY DATE_FORMAT(`date`, '%H:%i')
從MySQL存儲日期/時間作爲一個完整的數,除以100的數量會給你分鐘:
GROUP BY FLOOR(`data`/100)
按數字分組更有效,然後按文本分組。
如果你一分希望,無論組日期:
GROUP BY FLOOR(`data`/100) % 10000
非常halpfull答案謝謝!:) 100010分鐘 10000 1小時 20000 2小時 – Smoke 2014-11-21 06:53:44
老問題的新的答案!
要GROUP BY分鐘,你可以簡單地說:
SELECT (unix_timestamp(`date`) - unix_timestamp(`date`)%60) groupTime, count(*)
FROM yourTable
# WHERE clause
GROUP BY groupTime
有了這個解決方案,你會用一個小時,一天的同一分鐘的日期時間一分鐘從未混合日期時間,...
此外,這是一個演變的解決方案,因爲通過將「60」更改爲另一個數字,您可以分組幾分鐘(120),一天(86400),...
一個主側面效益該解決方案是,如果你存儲的時間戳,而不是日期,那麼你可以刪除UNIX_TIMESTAMP()部分,仍然以分鐘爲單位,例如 - 驚人的! – 2017-05-18 10:20:56
日期本身呢?你想將週日分鐘和週一分鐘分組在一起嗎? – 2011-02-17 03:04:38