SQL查询日期范围问题

时间:2016-02-19 07:56:26

标签: sql sql-server sql-server-2008

您好我正在寻找一个查询,可以在订单日期30天后向我发出销售订单通知,并在4天后显示通知并在此之后消失

例如,如果我在添加30天后在2016-01-19上进行了销售订单,则我的开始日期为2016-02-18,并且在当前日期添加4天,我的结束日期将为2016-02-23'< / p>

我尝试使用以下查询来做到这一点,但它没有给出所需的输出,即2016-02-182016-02-23之间的记录

输出我从下面查询得到的是空的

select * from [dbo].[Orders] where [OrderDate] between Dateadd(d, 30, OrderDate) and Dateadd(d, 4, GETDATE())

1 个答案:

答案 0 :(得分:3)

认为您正在尝试查找30到34天前发生的订单:

select * from [dbo].[Orders]
where [OrderDate] between Dateadd(day, -34, GETDATE()) and
                          Dateadd(day, -30, GETDATE())

可能希望稍微调整这些值,尤其是如果您的OrderDate值也包含时间,并且因为GETDATE()值始终包含时间。