好的,我有一个数据库,其中我的所有用户都注册了他们的datetime
,我的MYSQL日期时间字段中存储了2012-03-31 12:13:42
现在我想根据COUNT
用户提取到year
和month
。
由于我想为此目的提供图表数据,我希望在January
,feb
,march
等中添加总客户,特别是年份....
即必须year specific
,2010
Jan
允许2010
Feb
中的 52个客户让我们说< strong> 72位客户。
注意:我想要执行的查询是使用PHP和Mysql。
答案 0 :(得分:7)
您可以使用MySQL日期函数
SELECT YEAR(date_field) as stat_year,
MONTH(date_field) as stat_month,
COUNT(*) as stat_count
FROM `table`
GROUP BY stat_year,stat_month
如果您只想要特定年/月的结果,可以像这样添加WHERE子句的条件(并删除GROUP BY)
SELECT COUNT(*) as stat_count
FROM `table`
WHERE YEAR(date_field) = 2012
AND MONTH(date_field) = 3
答案 1 :(得分:1)
有不同的SQL可以解决问题,这里有一个......
SELECT COUNT(dt), DATE_FORMAT(dt, '%Y-%b') AS df FROM foo GROUP BY df;
其中foo是您的表名,dt是datetime列。请注意,这将在每行上应用函数DATE_FORMAT。此外,您可以根据需要更改格式,例如使用%m表示数字月份,%M表示完整月份名称等。根据需要添加where子句以进行筛选。以下SQL差不多......
SELECT COUNT(dt), YEAR(dt) AS y, MONTH(dt) AS m FROM foo GROUP BY y, m;