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月的日期列表

 

posted @   包海鹏-郑州JAVA  阅读(5593)  评论(1编辑  收藏  举报
编辑推荐:
· .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 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示