我从 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/