将固定日期更改为sysdate时的SQL语法



我有一个查询,我正在更新,其中一个项目是切换到基于sysdate的动态日期,似乎不能得到语法正确的变化。你可以在下面看到,第一行可以工作,我尝试了几种不同的方法将它替换为最后一行,但都没有成功。我搜索了一下,但找不到合适的例子。

TO_DATE('12-17-2022 18:00:00','MM-DD-YYYY HH24:MI:SS') and TO_DATE('12-18-2022 17:59:59','MM-DD-YYYY HH24:MI:SS')

TO_DATE(('Sysdate - 2) 18:00:00','MM-DD-YYYY HH24:MI:SS') and TO_DATE(('Sysdate -1) 17:59:59','MM-DD-YYYY HH24:MI:SS')

您不需要使用TO_DATE,因为SYSDATE已经是DATE

您可以将INTERVALs添加到SYSDATETRUNC返回到午夜:

BETWEEN TRUNC(SYSDATE) - INTERVAL '2' DAY + INTERVAL '18:00:00' HOUR TO SECOND
AND TRUNC(SYSDATE) - INTERVAL '1' DAY + INTERVAL '17:59:59' HOUR TO SECOND

或组合间隔:

BETWEEN TRUNC(SYSDATE) - INTERVAL '1 6:00:00' DAY TO SECOND
AND TRUNC(SYSDATE) - '6:00:01' HOUR TO SECOND

或者,添加天数的小数部分:

BETWEEN TRUNC(SYSDATE) - 2 + 18/24 
AND TRUNC(SYSDATE) - 1 + 18/24 - 1/24/60/60

最新更新