mysql查出指定时间段中的每天的日期
背景:数据库中某个业务表产生的数据日期不连续的,比如出库表,本月5号和27号可能都没有出库记录。前端报表组件要求传入连续的日期以便渲染数据
需求:返回指定日期时间段内的每天的出库量,如果当天没有出库记录,则当日出库量记为零
方法:
一、难点分析
在数据库层面根据出库记录创建日期进行分组,并对组内的出库量进行求和,即为当日的出库量。
问题在于如果某天没有出库记录则会产生日期遗漏问题。
难点在于如何获取指定时间段内的每一天的日期,获取后可以左关联查询每天的出库量。
二、查询指定时间段内每一天日期的方法(startDay:起始日期 endDay:结束日期)
SELECT date_add( date_sub(#{startDay},interval 1 day), INTERVAL ( cast( help_topic_id AS signed INTEGER ) + 1 ) day ) day FROM mysql.help_topic WHERE help_topic_id < DATEDIFF(#{endDay},date_sub(#{startDay},interval 1 day)) ORDER BY help_topic_id
三、查询2020年3月的日期列表
分类:
MySQL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?