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

在SQL查询中指定自定义日期范围,sql,database,date,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') 订单日是一个日期 但我想要的是: where owh.order_day between TO_DATE(owh.order_day -

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

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

where owh.order_day between TO_DATE('2016/07/15','YYYY/MM/DD') and TO_DATE('2017/01/17','YYYY/MM/DD')
订单日是一个日期

但我想要的是:

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\u day-order\u day+2开始

例如,如果订单日期为:“17/01/2016”,则我希望条件是动态计算日期范围为:“16/01/2016-20/01/2016”。 这样的事情可能吗?如果是,我们如何在SQL中实现

所讨论的数据库是Oracle
感谢任何潜在客户

因为您没有告诉我们您使用的是哪种RDBMS,而且您说的是“感谢任何潜在客户”,我想我们可以自由回答任何RDBMS。以下内容适用于MySQL:

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

(来源:)

因为您没有告诉我们您使用的是哪种关系数据库,而且您说的是“感谢您的任何潜在客户”,所以我想我们可以自由回答任何关系数据库。以下内容适用于MySQL:

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

(来源:)

SQL Server没有
to\u date()
函数。你在使用什么数据库?它是一个特定于公司的数据库。这在任何sql查询中都是可能的吗?这个问题毫无意义。您希望将
订单日
与基于
订单日
的范围进行比较。编辑您的问题(或询问其他问题)。使用您正在使用的正确数据库进行标记。提供示例数据和期望的结果。为了清晰起见,我添加了示例。日期范围基本上是基于order_day的值,它是否依赖于DB。我的问题一般是针对任何数据库。SQL Server没有
to\u date()
函数。你在使用什么数据库?它是一个特定于公司的数据库。这在任何sql查询中都是可能的吗?这个问题毫无意义。您希望将
订单日
与基于
订单日
的范围进行比较。编辑您的问题(或询问其他问题)。使用您正在使用的正确数据库进行标记。提供示例数据和期望的结果。为了清晰起见,我添加了示例。日期范围基本上是基于order_day的值,它是否依赖于DB。我的问题是关于任何db的一般问题。