Mysql补全时间段内的日期
Mysql补全时间段内的日期
通过辅助表补全时间段的日期
1、辅助表
需要保证有足够多的数据,且比较稳定,数据确定了之后基本不会进行增删改操作最好;个人觉得200-300条数据就差不多了,毕竟一般业务也不会有这么多日期要查询,多用于报表
我这里拿了区县编码表用作辅助表
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之间的所有日期
3、与数据表进行左连接查询
用日期临时表与业务数据表进行左连接查询,即可实现补全并没有数据的日期
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下