按日/月/年分列的MySQL查询组

按日/月/年分列的MySQL查询组

我是否可以简单地查询一下,在一段确定的时间内,我有多少记录,比如一年、一个月或几天,有一个TIMESTAMP字段,例如:

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

甚至:

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

每月的统计数据。

谢谢!


料青山看我应如是
浏览 700回答 3
3回答

猛跑小猪

GROUP BY YEAR(record_date), MONTH(record_date)检查一下日期和时间函数在MySQL。

慕仙森

GROUP BY DATE_FORMAT(record_date, '%Y%m')注(主要是潜在的选民)。目前,这可能不如其他建议有效。尽管如此,我还是把它作为一种选择,也是一种,它可以帮助我们看到其他解决方案的速度有多快。(因为直到你看到区别,你才能真正分辨出快慢。)而且,随着时间的推移,在优化方面可以对MySQL的引擎进行更改,以便使这个解决方案在将来的某些(也许不是很遥远的)点上与大多数其他解决方案的效率相当。

慕标琳琳

我尝试使用上面的“WHERE”语句,我认为它是正确的,因为没有人纠正它,但我错了;经过一些搜索后,我发现这是WHERE语句的正确公式,因此代码如下所示:SELECT COUNT(id)  FROM stats   WHERE YEAR(record_date) = 2009  GROUP BY MONTH(record_date)
打开App,查看更多内容
随时随地看视频慕课网APP