如何根据特定的月份和时间获取数据一年在mysql php

时间:2012-04-02 06:02:06

标签: php mysql datetime count fetch

好的,我有一个数据库,其中我的所有用户都注册了他们的datetime,我的MYSQL日期时间字段中存储了2012-03-31 12:13:42现在我想根据COUNT用户提取到yearmonth

由于我想为此目的提供图表数据,我希望在Januaryfebmarch等中添加总客户,特别是年份....

即必须year specific2010 Jan允许2010 Feb中的 52个客户让我们说< strong> 72位客户。

注意:我想要执行的查询是使用PHP和Mysql。

2 个答案:

答案 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;