【问题标题】:how to fetch the data according to particular month & year in mysql php如何在mysql php中根据特定月份和年份获取数据
【发布时间】:2012-04-15 19:47:47
【问题描述】:

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

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

即它必须是year specific 2010 Jan 可以说 52 个客户2010 Feb 可以说 72 个客户

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

【问题讨论】:

    标签: php mysql datetime count fetch


    【解决方案1】:

    您可以使用 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
    

    【讨论】:

    • 什么是 date_field??我的 mysql 字段为datetile,因此它存储的值类似于2012-03-31 12:13:42....
    • 这是他用来指代存储日期的字段的名称。你没有提供它,所以他用它作为占位符。只需将 date_field 替换为您为该字段指定的任何名称即可。
    【解决方案2】:

    有不同的 SQL 可以解决问题,这里有一个 ...

    SELECT COUNT(dt), DATE_FORMAT(dt, '%Y-%b') AS df FROM foo GROUP BY df;
    

    其中 foo 是您的表名,dt 是日期时间列。请注意,这将在每一行上应用函数 DATE_FORMAT。此外,您可以根据需要更改格式,例如使用 %m 表示数字月份,使用 %M 表示完整月份名称等。根据需要添加 where 子句进行过滤。下面的SQL几乎是一样的……

    SELECT COUNT(dt), YEAR(dt) AS y, MONTH(dt) AS m FROM foo GROUP BY y, m;
    

    【讨论】:

    • 这里的df 是什么?是错字吗..?
    • 这是我用于选择字段 DATE_FORMAT(dt, '%Y-%b') 的别名。请注意,您可以使用别名选择输出字段名称,例如SELECT COUNT(*) AS cnt, ...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 2019-08-11
    • 2021-11-25
    • 2017-01-01
    相关资源
    最近更新 更多