select d1.date `date` , IFNULL(d2.sumappointment,0) `value` from (
select date from
(select adddate('1970-01-01',t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) date from
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t0,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t1,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t2,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t3,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t4) v
where date between 开始时间 and 结束时间
) d1 left join
(
select DATE_FORMAT(时间字段,"%Y-%m-%d") date , count(1) sumappointment
from 表名
where 时间字段 >= '${开始时间} 00:00:00'
and 时间字段 <= '${结束时间} 23:59:59'
GROUP BY date
) d2 on d1.date = d2.date
order by date asc