php - 计算同一个月的不同天数

标签 php mysql

我从 MySQL 数据库中选择特定行并获得以下列表:

2017-07-28
2017-07-28
2017-07-28
2017-07-28
2017-07-31
2017-07-31
2017-08-01
2017-08-01
2017-08-02
2017-08-02
2017-08-02
2017-08-03
2017-08-04

我想计算每个月有多少天不同,在这种情况下我想得到以下结果:

2017-07: 2 different days
2017-08: 4 different days

我尝试在数组的帮助下做到这一点,但没有成功。

最佳答案

使用:

SELECT DATE_FORMAT(date_col, '%Y-%m') AS year_month
      , COUNT(DISTINCT DAY(date_col)) AS cnt
FROM your_table
GROUP BY DATE_FORMAT(date_col, '%Y-%m');

它是如何工作的:

  • 首先根据年月部分创建组
  • 使用聚合函数COUNT来计算每个组中的出现次数
  • DISTINCT 仅获取月份中日期的不同值

关于php - 计算同一个月的不同天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45672156/

相关文章:

php - 从数据库中删除内容,安全预防措施

使用单个 mysql_query() 调用执行多个查询的 PHP 代码

PHPUnit 找不到我的测试文件或直接执行它们

php - Mysql 事务未按预期工作

php - 国家/地区下拉列表将 ID 而不是名称(字符串)插入数据库(mysql)

php - 深入了解 fusionchart

c# - 如何使用 nhibernate 将数据库字段设置为服务器时间

php - 如何通过 PHP 处理 Sedna

mysql pro 上的 mysql 重复 root 用户

java - Eclipse - GWT - Java - MySQL - 如何正确捕获异常