直接上sql
SELECT months_list.months months,IFNULL(data.count, 0) statistics from
(select DATE_FORMAT(create_time, '%c') months, count(1) count from djlr_alarm GROUP BY months) data
right join
(SELECT DATE_FORMAT(@date := DATE_ADD(@date, interval -1 MONTH),'%c') months from
(SELECT @date := DATE_ADD('2022-06-22 HH:MM:ss', interval 1 MONTH) from djlr_alarm)
days limit 28) months_list on months_list.months = data.months
细节说明:DATE_FORMAT(create_time, '%c')
此函数查询结果会将月份直接返回数字如 :6 下面是详细说明
格式 描述
%a 缩写星期名
%b 缩写月名
%c 月,数值
%D 带有英文前缀的月中的天
%d