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 @   棒棒糖堂堂主  阅读(1143)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示