Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用今天的日期创建日期范围_Sql_Oracle_Date_Range - Fatal编程技术网

Sql 使用今天的日期创建日期范围

Sql 使用今天的日期创建日期范围,sql,oracle,date,range,Sql,Oracle,Date,Range,我正在尝试创建一个用户将来无法运行的报告。我需要指定一个日期范围,在这种情况下,该范围将是最后6周的数据。我在本报告中使用的日期字段是app\u receipt\u date。我只是想学习如何使用类似于excels today函数的函数 下面是sql语句。忽略我上次运行此实例的日期。我再次尝试“自动化”这一前进方向 select a.underwriting_app_id, q.underwriting_quote_id, a.application_source, q.i

我正在尝试创建一个用户将来无法运行的报告。我需要指定一个日期范围,在这种情况下,该范围将是最后6周的数据。我在本报告中使用的日期字段是app\u receipt\u date。我只是想学习如何使用类似于excels today函数的函数

下面是sql语句。忽略我上次运行此实例的日期。我再次尝试“自动化”这一前进方向

  select a.underwriting_app_id,
   q.underwriting_quote_id,
   a.application_source,
   q.insured_id,
   q.policy_year,
   a.underwriting_rep,
   --b.marketing_rep,
   a.mail_name,
   a.app_receipt_date,
   a.effective_date,
   a.expiration_date,
   SUBSTR(TO_CHAR(a.effective_date, 'MM/DD/YYYY'), 1,2) as Month,
   a.underwriting_app_status,
   s.description,
   a.last_status_date,
   a.governing_class_code_id,
   q.annual_premium,
   q.create_date,
   q.create_user

 from underwriting_app a,
 app_quote q,
 underwriting_app_status s


where a.underwriting_app_id = q.underwriting_app_id and
  a.underwriting_app_status = s.underwriting_app_status and
  --a.agency_no = b.agency_no (+) and
  q.active_quote_flag = 'Y' and
  a.app_receipt_date > to_date('04-Nov-2012','dd-mm-yyyy') and
  a.app_receipt_date < to_date('17-Dec-2012','dd-mm-yyyy')
提前感谢您的帮助


Brad

如果您使用的是T-SQL,您可以使用GETDATE函数获取今天的日期,然后可以使用DATEADD函数调整值以获取范围,因此您可以使用类似的方法:

SELECT * FROM Your_Table
WHERE app_receipt_date > DATEADD(week,-6,GETDATE());

希望这能有所帮助。

如果您在Oracle,请使用“SYSDATE”作为当前日期,您可以使用直接加减法添加天数。如果假设一周为7天,您可以这样做:

SELECT * FROM Your_Table
WHERE app_receipt_date > SYSDATE - (6 * 7);

其中*7仅表示您将六周乘以七天。

您使用的是哪个数据库?添加一些实际的SQL代码可以澄清这个问题。我不知道这是否回答了你的问题。我是PL/SQL开发人员。9.0? 是这样吗?抱歉,谢谢,我收到一个错误,上面写着ORA-00904:DATEADD:invalid identifierAh,您正在使用Oracle。要在Oracle中获取今天的日期,可以使用select sysdate from dual。然后,您可以通过对该日期进行加法或减法来对其进行加法/减法,例如,昨天的日期将是从dual中选择sysdate-1等+1(假设一周为7天)-我很欣赏这一点!我希望更多的开发人员能够停下来思考他们在应用程序中构建的假设: