在oracle查询中表示日期的更好方法

0 oracle

有没有更好的方法以更好的方式重新启动oracle的以下查询,下面是查询

UPDATE ABC SET STATUS='CLEAN' 
 WHERE STATUS in ('RUNNING','HALT') 
   AND START_DATE BETWEEN to_date(to_char(sysdate-1 , 'MM/DD/YYYY'),'MM/DD/YYYY') 
                      and to_date(to_char(sysdate-4 , 'MM/DD/YYYY'),'MM/DD/YYYY');
Run Code Online (Sandbox Code Playgroud)

Wer*_*eit 6

虽然正确的,我不喜欢铸造DATE成一个CHAR,然后再返回到一个日期.注意sysdate-1大于sysdate-4,因此您的条件永远不会成立.试试这个:

START_DATE BETWEEN TRUNC(sysdate-4) AND TRUNC(sysdate-1);
Run Code Online (Sandbox Code Playgroud)