SELECT
substr( create_date(字段), 1, 10 ) AS time,
IFNULL(count(*),0) as count(计数)
FROM
app_module
WHERE
substr( create_date(字段), 1, 10 ) > DATE_SUB(substr('2018-09-05'(从哪一天统计), 1, 10 ), INTERVAL 300(统计多少天) DAY ) AND substr('2018-09-05'(从哪一天统计), 1, 10 ) >= substr( create_date(字段), 1, 10 )
GROUP BY
substr( create_date(字段), 1, 10 )
红色部分是需要修改的。
然后我们可以看到,每天的数量都展示出来了,那么出现个问题。会出现如果当天没有,就不展示了。
但是我们需要展示所有的,没有的话就不展示。
我们用代码实现
private static List<Map<String, Object>> map2map(List<Map<String, Object>> mapList){
//补全数据库中不存在的日期,订单数为0
List<String> dayList = DateUtil.dayList(30);//得到7天前到今天每天的日期
boolean exists = false;
for (int i=0;i<dayList.size();i++) {
exists=false;
for (Map<String, Object> hs : mapList) {
if (dayList.get(i).equals(hs.get("time"))) {
exists=true;
break;
}
}
if(!exists){
final String date=dayList.get(i);
mapList.add(i,new HashMap<String,Object>(){{
put("count", 0);
put("time", date);
}});
}
}
return mapList;
}