因此,我有一个查询,可以正确显示过去12个月的注册数量。显示内容如下:最近2年每月注册
1--17
2--12
3--17
4--8
5--9
6--8
7--15
8--20
9--12
10--14
11--13
12--14
但由于我在6月运行,我需要说的最后一个月是可读日期5月,而不是"1"。我想要:
May--17
Apr--12
March--17
.
.
.
这是我当前的MYSQL:
SELECT MONTH(create_date) as month , COUNT(create_date) as count
FROM `users`
WHERE create_date >= NOW() - INTERVAL 1 YEAR
GROUP BY MONTH(create_date)
我假设我只需要在GROUP By上使用FORMAT_DATE()作为:
按格式分组日期(月(创建日期,'%M'))
这将给我一个可读的月份,但sql语句报告它是不正确的。有人知道如何做到这一点吗?
试试这个:
SELECT DATE_FORMAT(create_date, '%M') AS month, COUNT(create_date) AS count
FROM users
WHERE create_date >= NOW() - INTERVAL 1 YEAR
GROUP BY MONTH(create_date);
结果将是:
+-----------+-------+
| month | count |
+-----------+-------+
| January | 1 |
| February | 1 |
| March | 1 |
| April | 1 |
| May | 2 |
| June | 2 |
| July | 1 |
| August | 1 |
| September | 1 |
| November | 1 |
| December | 1 |
+-----------+-------+
您可以使用STR_TO_DATE()将数字转换为日期,然后使用MONTHNAME()返回
SELECT MONTHNAME(create_date(6, '%m')) as month , COUNT(create_date) as count
FROM `users`
WHERE create_date >= NOW() - INTERVAL 1 YEAR
GROUP BY MONTH(create_date)