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查出指定时间段中的每天的日期