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_DATE
it是错误的。
您发布的代码应该有效(没有证据表明它无效;您能提供样本数据和所需的输出吗?(。
这是";现在":
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>