按给定日期SQL检索30天范围内的日期记录

时间:2014-11-20 00:30:17

标签: sql

我无法找到在给定日期内30天范围内的记录

例如:我的日期为2014年10月31日,我的具体截止日期为2014年11月28日。

我想检索此记录(2014年10月31日)当我的当前日期是2014年10月28日,直到我当前的日期变为11/28/2014(即30天范围内)。如果我当前的日期是2014年11月29日,那么我不需要检索此记录。

我花了将近3个小时的时间。如果您能给我一个查询,将不胜感激。

谢谢, VJ。

1 个答案:

答案 0 :(得分:3)

一般格式是:

where duedate >= CURRENT_DATE - interval '30' day and duedate <= CURRENT_DATE

这是标准语法,适用于MySQL和Postgres。 Oracle等效项是:

where duedate >= trunc(sysdate) - 30 day and duedate <= trunc(sysdate)

与SQL Server等效的是:

where duedate >= cast(getdate() - 30 as date) and duedate <= cast(getdate() as date)