将VARCHAR2与SYSDATE进行比较

PT_*_*T_C 1 sql oracle varchar

我有一个OracleEND_DATE,这是一个varchar2(256).我需要比较那个值,SYSDATE但我一直在收到错误.

END_DATE        |SYSDATE   
----------------|-------
06/30/2016 00:00|29-FEB-16
Run Code Online (Sandbox Code Playgroud)

这就是我尝试过的:

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
Run Code Online (Sandbox Code Playgroud)

有什么我想念的吗?

Meh*_*hdi 5

你试过的第三次尝试几乎就是这样.

HH:MM部分是错误的:

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

cf 日期时间格式模型.

这应该工作:

TO_DATE(u.END_DATE, 'MM/DD/YYYY HH24:MI') > SYSDATE
Run Code Online (Sandbox Code Playgroud)