0

所以我有一个查询可以正确显示过去 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

但是因为我在六月运行这个,最后一个月我需要说可读日期五月而不是'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() 作为:

GROUP BY FORMAT_DATE(MONTH(create_date, '%M'))

这会给我我可读的月份,但 sql 语句报告它不正确。有谁知道如何做到这一点?

4

2 回答 2

1

尝试这个:

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 |
+-----------+-------+
于 2015-06-28T17:15:10.773 回答
0

您可以使用 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)
于 2015-06-28T17:13:52.467 回答