我有一个功能选择语句,它有一个 where 子句,在 where 子句中有一个像这样的语句......
to_date(camp.start_date, 'MM/DD/YYYY') >= to_date(:from_date, 'YYYY-MM-DD HH24:MI:SS')
但是,如果 camp.start_date 为 NULL 或没有行,那么它会引发异常 -
ORA-01858: 在需要数字的地方发现了一个非数字字符
camp.start_date 实际上是一个 VARCHAR2 ,我需要将其转换为日期(是的,我知道它可能应该是一个日期字段,但我没有选择更改它的选项)。
我尝试过这样的事情......
to_date(NVL(camp.start_date,SYSDATE), 'MM/DD/YYYY') >=
to_date(:from_date, 'YYYY-MM-DD HH24:MI:SS')
这仍然给我一个错误。也试过
其中 camp.start_date 不为空并且 to_date(camp.start_date, 'MM/DD/YYYY') >= to_date(:from_date, 'YYYY-MM-DD HH24:MI:SS')
同样的问题。解决这个问题的最佳方法是什么?当 camp.start_date 不是有效日期时,基本上 to_date 会爆炸并引发错误。