SQL查询:从上个月的今天和提前2个月收集的视图

问题描述 投票:-1回答:1

我正在修改一个当前查询,该查询会定期运行,以便会员小组查看最近的过期时间。该查询中的子句为:

and date_expiry between '2019-11-01' and '2019-12-31'

日期被扩展为涵盖两个月的时间。

我想做的是将此查询创建为excel视图,以便他们可以在需要时刷新。到目前为止,我所能做的并达到一定程度的*是:

and date_expiry between curdate()- interval 1 month and curdate()+ interval 3 month

但是,许多查询可能会遇到的问题是,上面的查询收集的是前一个月(2019年10月11日)和今天后三个月(2020年10月2日)的数据。

所以我一直在搜索,最接近的是这个:

and month(date_expiry) = month(current_date- interval 1 month ) and year(date_expiry)= year(curdate()) 

这非常适合收集上个月(01/11 / 2019-31 / 11/2019)的所有内容,但是我不知何故需要添加类似的内容来收集高级月份的数据。请帮助!

mysql sql sql-date-functions
1个回答
1
投票

curdate()建议使用MySQL。您可以按以下方式处理完整日期:

where date_expiry >= (curdate() - interval (1 - day(curdate())) day) - interval 1 month and
      date_expiry < (curdate() - interval (1 - day(curdate())) day) + interval 1 month 

这很方便,因为它是索引友好的。

© www.soinside.com 2019 - 2024. All rights reserved.