2011-05-28 84 views
1

我試圖返回每個月內的記錄數並按月/年分組結果。使用unix時間戳在一個月內SQL計數記錄

模式看起來是這樣的:

id title timestamp 

我一直在尋找周圍,但我期待它,我不能得到的結果。謝謝。

+0

你想數'2010年1月a nd'Jan/2011'分開,對吧? – 2011-05-28 10:25:04

回答

8

格式化時間戳,然後按它進行分組。

組的月份:

SELECT DATE_FORMAT(t.timestamp, "%Y-%m") AS "_Month", COUNT(*) 
FROM yourtable as t 
GROUP BY _Month; 

組的年份:

SELECT DATE_FORMAT(t.timestamp, "%Y") AS "_Year", COUNT(*) 
FROM yourtable as t 
GROUP BY _Year; 

如果時間戳字段存儲爲unixtime價值,只是包裝FROM_UNIXTIME()繞場:

SELECT DATE_FORMAT(FROM_UNIXTIME(t.timestamp), "%Y") AS "_Year", COUNT(*) 
FROM yourtable as t 
GROUP BY _Year; 
+0

Crikey這個地方不錯。謝謝! – 2011-05-28 11:04:01

4
SELECT YEAR(`timestamp`) AS Y, MONTH(`timestamp`) AS M, COUNT(1) AS C 
FROM that_table 
GROUP BY YEAR(`timestamp`), MONTH(`timestamp`) 
ORDER BY YEAR(`timestamp`), MONTH(`timestamp`)