在SQL查询中指定自定义日期范围

时间:2017-02-14 12:53:18

标签: sql database date

我想编写一个查询,其中我需要指定自订单日起的日期的自定义范围(而不是硬编码日期范围)。在使用的表中,我有订单的日期。

截至目前,我已将日期范围硬编码为:

where owh.order_day between TO_DATE('2016/07/15','YYYY/MM/DD') and TO_DATE('2017/01/17','YYYY/MM/DD')

其中order_day是日期。

但我想要的是:

where owh.order_day between TO_DATE(owh.order_day - 1,'YYYY/MM/DD') and TO_DATE(owh.order_day +3,'YYYY/MM/DD')

我正在做“-1”,因为它是“介于”之间,所以它需要从order_day - order_day + 2

例如,如果order_day是:“17/01/2016”那么我希望条件是日期范围动态计算的位置:“2016年1月16日 - 2016年1月20日”。 这样的事情可能吗?如果是,我们如何在SQL中实现?

有问题的数据库是Oracle 任何领导赞赏

1 个答案:

答案 0 :(得分:0)

由于您没有告诉我们您正在使用哪种RDBMS,并且因为您说"任何潜在客户赞赏",我想我们可以自由地为任何RDBMS提供答案。以下内容适用于MySQL:

BETWEEN DATE_SUB( somedate, INTERVAL 1 DAY ) AND DATE_ADD( somedate, INTERVAL 1 DAY )

(来源:https://www.tutorialspoint.com/sql/sql-date-functions.htm#function_date-add