Oracle SQL能够在Sysdate上添加过滤器,该过滤器在几天内接受负值和负值



SQL新手。我正在尝试调整Oracle SQL报告中的筛选器,我希望筛选器同时接受负值(-(和正值(+(。

这是我的SQL行:

Work_day <= to_date(sysdate+'&Days_from_current_date')

问题我只能从sysdate添加+天,我想有一个可以接受的过滤器:

-XX days from the sysdate
+XX days from the sysdate

首先,SYSDATE是一个返回DATE数据类型的函数,因此TO_DATEit是错误的。

您发布的代码应该有效(没有证据表明它无效;您能提供样本数据和所需的输出吗?(。

这是";现在":

SQL> select sysdate from dual;
SYSDATE
-------------------
03.03.2022 09:05:04

查询:

SQL> with test (name, work_day) as
2    (select 'Little', date '2022-03-01' from dual union all
3     select 'Foot'  , date '2022-03-15' from dual
4    )
5  select *
6  from test
7  where work_day <= trunc(sysdate) + &days_from_current_date;
Enter value for days_from_current_date: 2
NAME   WORK_DAY
------ -------------------
Little 01.03.2022 00:00:00
SQL> /
Enter value for days_from_current_date: -1
NAME   WORK_DAY
------ -------------------
Little 01.03.2022 00:00:00
SQL> /
Enter value for days_from_current_date: 20
NAME   WORK_DAY
------ -------------------
Little 01.03.2022 00:00:00
Foot   15.03.2022 00:00:00
SQL>

相关内容

  • 没有找到相关文章

最新更新