MySQL查询GROUP BY日/月/年

是否有可能我做了一个简单的查询来计算我在确定的时间段内有多少条记录,如年,月或日,具有TIMESTAMP字段,如:

SELECT COUNT(id)
FROM stats
WHERE record_date.YEAR = 2009
GROUP BY record_date.YEAR

甚至:

SELECT COUNT(id)
FROM stats
GROUP BY record_date.YEAR, record_date.MONTH

有每月统计。

谢谢!


GROUP BY YEAR(record_date), MONTH(record_date)

查看MySQL中的日期和时间函数。


GROUP BY DATE_FORMAT(record_date, '%Y%m')

请注意 (主要针对可能的downvoters)。 目前,这可能不如其他建议那么有效。 尽管如此,我仍然把它作为一种替代方案,也是一种可以用来观察其他解决方案的速度的方法。 (因为直到看到差异才能真正从慢速告诉)。另外,随着时间的推移,MySQL的引擎可能会对优化进行更改,以便在某些(可能不是这样)遥远的)点,在效率上与其他大多数人相当。


我尝试使用上面的WHERE语句,我认为它是正确的,因为没有人纠正它,但我错了; 经过一些搜索后,我发现这是WHERE语句的正确公式,所以代码如下所示:

SELECT COUNT(id)  
FROM stats  
WHERE YEAR(record_date) = 2009  
GROUP BY MONTH(record_date)
链接地址: http://www.djcxy.com/p/36731.html

上一篇: MySQL Query GROUP BY day / month / year

下一篇: type seconds between Joda