比较 VARCHAR2 和 SYSDATE

Comparing a VARCHAR2 to SYSDATE

我有一个 OracleEND_DATE 那是一个 varchar2(256)。我需要将该值与 SYSDATE 进行比较,但我不断收到错误。

END_DATE        |SYSDATE   
----------------|-------
06/30/2016 00:00|29-FEB-16

这是我试过的:

u.END_DATE > SYSDATE ---> ORA-01843: not a valid month
TO_DATE(u.END_DATE, 'DD-MM-YY') > SYSDATE ----> ORA-01843: not a valid month
TO_DATE(u.END_DATE, 'MM/DD/YYYY HH:MM') > SYSDATE ----> ORA-01810: format code appears twice

有什么我遗漏的吗?

第三次尝试就差不多了

HH:MM部分错误:

  • 应使用 MI(分钟)而不是 MM(月)
  • 应使用 HH24 而不是 HH

cf Datetime Format Models.

这个应该有效:

TO_DATE(u.END_DATE, 'MM/DD/YYYY HH24:MI') > SYSDATE