有没有更好的方法可以更好地重启下面的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');
答案 0 :(得分:6)
尽管正确,但我不喜欢将DATE
强制转换为CHAR
并再次返回DATE。注意sysdate-1
大于sysdate-4
,因此您的条件将从不为真。试试这个:
START_DATE BETWEEN TRUNC(sysdate-4) AND TRUNC(sysdate-1);