首页 > 解决方案 > 比较 2 个日期字段 - 当一个日期字段为空时

问题描述

我想选择日期大于上次处理日期的行。最后处理的日期在历史表中。

select id
from table1 
where to_date(last_updated_date,'MM/DD/YYYY HH24:MI:SS') 
              > select to_date(nvl(max(last_updated_date),sysdate),'MM/DD/YYYY HH24:MI:SS')
                from table1_hist;

这返回 ORA-01843: not a valid month 错误。

我在 table1 中手动插入行作为 TO_DATE('09/26/2019 14:37:49', 'MM/DD/YYYY HH24:MI:SS') 而在 table1_hist 中没有行。但是,当我使用 sql developer 查询 table1 的表时,我得到的值显示为“26-SEP-19”。last_updated_date 是一个日期字段。

我想在最后一次执行时间之后从 table1 中获取 id。

谢谢

标签: oracle

解决方案


SYSDATE是一个日期值。TO_DATE()在已经是 a 的值上使用DATE是没有用的。

尝试

where last_updated_date >
       (select MAX(NVL(last_updated_date, SYSDATE)) from table1_hist);

推荐阅读