【发布时间】:2021-02-08 10:00:42
【问题描述】:
我有一个 oracle sql 代码,与手动输入的日期(最后一个星期四或星期五)相比,使用 sysdate 时得到的结果不一致。
例如:
-
更改会话集 nls_date_format='DD-MON-RR';
-
使用以下在星期一运行自定义日期的 where 子句进行查询:
正常工作的手动输入:
WHERE DATECOLUMN= to_date('2021/01/29','yyyy/mm/dd') -- key in previous Friday's date WHERE DATECOLUMN= case when to_char(sysdate,'D')=2 then sysdate-3 else to_date('9999/01/01','yyyy/mm/dd') end -- if today is monday, then pick last Friday's date for the run else pick a dummy date.
我确信 python 中的 alter session 脚本工作正常,因为我也在 Alteryx 中进行了测试。但是,我仍然无法让结果与手动输入的日期相匹配。我使用 select 测试了 sysdate-3 与 DATECOLUMN 的比较,它似乎在 TOAD 上工作,所以我没有看到导致不匹配的问题。
当两段代码都应该将 DATECOLUMN 与相同的值进行比较时,导致结果不匹配的原因可能是什么?
【问题讨论】: