我要获取每天添加的记录数,
我的sql语句,
select date_format(u.addtime,'%Y-%m-%d') addday,count(1) cnt
from 'user' u
where u.addtime>='2016-9-21 00:00:00' and u.addtime<now() group by addday
现在的结果是这样的:
像2016-9-23,因为没有记录,所以就没有显示,我想要这段时间每天的记录数,即使9-23没有记录,count也要为0,这个怎么解决啊?
我不知道你的场景是什么,但是数据库无中生有特别难;
1.建议在程序中处理;
2.实在要用数据库处理则需要一张全日期表;比如2016的一天是一条数据;
然后用日期表来左连接你的这个结果集,日期限制也要在日期表,然后再用case when;
希望能帮你找到思路....
select case when u.addtime!='' then date_format(u.addtime,'%Y-%m-%d') else 0 end addday,count(1) cnt
from 'user' u
where u.addtime>='2016-9-21 00:00:00' and u.addtime<now() group by addday
试一下吧,不行的话就另请高明了
我是新建了一张表
每日新增用户表
create_time(创建日期)
add_member(新增用户数量)
定时任务提前往里面加一条为0的数据