在开发过程中,经常会遇到统计,如果统计的时间段内有间隔,不管是左连接还是右连接都不会有,所以这时候我们需要写个语句能补全这段时间内所有的时间,然后用时间去关联业务查询。
select @num := @num +1,date_format(adddate(DATE_SUB('2023-01-01',interval 1 Day ),interval @num Day),'%Y-%m-%d') as datefrom account_log,(select @num :=0) twhere adddate('2023-01-01',interval @num Day) <= date_format('2024-04-01','%Y-%m-%d') order by date
其中 2023-01-01 是开始时间,2024-04-01是结束时间,这样就会生成从2023-01-01 到 2024-04-01所有日期,然后用生成的这些日期去关联业务表做统计查询。