将VARCHAR2与SYSDATE进行比较

时间:2016-02-29 15:04:49

标签: sql oracle varchar

我的OracleEND_DATEvarchar2(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

我有什么遗失的吗?

1 个答案:

答案 0 :(得分:5)

你尝试过的第三次尝试几乎就是它。

HH:MM部分错误:

  • MI(分钟)应该用来代替MM(月)
  • 应使用HH24代替HH

cf Datetime Format Models

这个应该有效:

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