Mysql补全时间段内的日期

Mysql补全时间段内的日期

通过辅助表补全时间段的日期

1、辅助表

需要保证有足够多的数据,且比较稳定,数据确定了之后基本不会进行增删改操作最好;个人觉得200-300条数据就差不多了,毕竟一般业务也不会有这么多日期要查询,多用于报表
我这里拿了区县编码表用作辅助表
image

2、建立日期临时表
SELECT 
( @date := DATE_ADD( @date, INTERVAL 1 DAY )) AS date 
FROM `areas`,( SELECT @date := '2022-06-20' ) temp 
WHERE
	@date < '2022-08-20'

这里 @date 为自定义变量; SELECT @date := '2022-06-20' 为变量赋初值‘2022-06-20’;@date := DATE_ADD( @date, INTERVAL 1 DAY ) 进行变量加一操作;其中‘areas’表为辅助表,where条件中的'2022-08-20'是时间段的结束;效果如下:
补全了2022-06-20至2022-08-20之间的所有日期
image

3、与数据表进行左连接查询

用日期临时表与业务数据表进行左连接查询,即可实现补全并没有数据的日期

posted @ 2022-08-20 21:22  棒棒糖堂堂主  阅读(1215)  评论(0)    收藏  举报