我想编写一个查询,其中我需要指定自订单日起的日期的自定义范围(而不是硬编码日期范围)。在使用的表中,我有订单的日期。
截至目前,我已将日期范围硬编码为:
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 任何领导赞赏
答案 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)