oracle - 在 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');
解决方案
虽然是正确的,但我不喜欢将 aDATE
转换为 aCHAR
并再次转换为 DATE。注意sysdate-1
大于sysdate-4
,因此您的条件永远不会为真。试试这个:
START_DATE BETWEEN TRUNC(sysdate-4) AND TRUNC(sysdate-1);
推荐阅读
- presto - 在 presto 中计算偏度和峰度
- lua - Add to table only 10 values
- php - wp_tag_cloud 在简单页面上显示结果
- gradle - 多模块项目中的gradle继承
- android - 打开预先存在的 github 库时,Android 上的 CMAKE 和 NDK 出错。(使用 Windows 10)
- javascript - 从连续数字生成数字序列
- javascript - 在 React 中切换组件
- perl - Perl:将(Log4perl-)对象传递给模块
- go - 检查结构字段是否为空
- python - 如何从文本文件中随机删除 100 个块