下面是本人在开发过程中遇到的一个问题,需要根据给定的日期(“#{curDate}”),生成当月的日期列表,用于生成当月的报表数据,为了提高系统效率,索性将生成日期列表的操作放在了SQL中完成,生成方法借助了mysql数据库自带的一张表mysql.help.topic,原因是该表的记录数足够我们用来生成列表,但是我并没有使用mysql.help.topic中的任何数据,SQL语句如下:
SELECT @cdate := DATE_ADD(@cdate, INTERVAL + 1 DAY ) date
FROM
( SELECT @cdate := LAST_DAY(DATE_SUB(#{curDate}, INTERVAL 1 MONTH))
FROM mysql.help_topic) t0
where @cdate < LAST_DAY(#{curDate}
)