我看过类似的问题,但无法找到这个具体问题的答案。
我有一个使用名为CYCLEDATE的参数的存储过程,该参数将设置为2017年1月27日。
我需要的是能够在周期和周期-30天之间显示数据。从今天开始不是30天,而是用户输入的任何价值。
因此用户进入1月30日,数据显示1月1日至30日等。
此尝试为我抛出了错误。
AND TRAN.TL_PRCS_DATE BETWEEN CYCLEDATE AND CYCLEDATE - 30
答案 0 :(得分:1)
sytnax for the BETWEEN
expression是:
value BETWEEN lower_bound AND upper_bound
你需要交换边界:
AND TRAN.TL_PRCS_DATE BETWEEN CYCLEDATE - 30 AND CYCLEDATE
答案 1 :(得分:0)
[...]
的价值
expr1 BETWEEN expr2 AND expr3
是布尔表达式的值:
expr2 <= expr1 AND expr1 <= expr3
所以你需要
AND TRAN.TL_PRCS_DATE BETWEEN CYCLEDATE -30 AND CYCLEDATE
例如:
SQL> select 1 from dual where sysdate between sysdate - 30 and sysdate + 30;
1
----------
1
SQL> select 1 from dual where sysdate between sysdate + 30 and sysdate - 30;
no rows selected