最近在调试SQL时遇到如下两个Oracle报错:
ORA-01858: a non-numeric character was found where a numeric was expected
ORA-01861: literal does not match format string
今天把其记录下来,以便增加记忆,和日后查阅。
- 原因:
在SQL中有使用TO_DATE函数进行日期转换,如果直接按照字符串方式,或者直接使用’2019-4-10 11:07:25’,没有指定日期格式,就会报错,例如:
TO_DATE(‘2019-4-10 11:07:25’)
- 解决
在使用TO_DATE进行日期转换时必须指定日期格式,如下:
to_date(‘2019-4-10 11:07:25’ , ‘yyyy-mm-dd hh24:mi:ss’)