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

时间:2018-08-10 12:10:56

标签: 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');

1 个答案:

答案 0 :(得分:6)

尽管正确,但我不喜欢将DATE强制转换为CHAR并再次返回DATE。注意sysdate-1大于sysdate-4,因此您的条件将从不为真。试试这个:

START_DATE BETWEEN TRUNC(sysdate-4) AND TRUNC(sysdate-1);