我有一个查询,我正在更新,其中一个项目是切换到基于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
。
您可以将INTERVAL
s添加到SYSDATE
TRUNC
返回到午夜:
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