在sqldeveloper中用sql语句向date型字段插入to_char函数的结果时可以成功更新,但用程序跑的时候会报ORA-01861的错误。如何解决
09/08追记
Sql不能改…因为整个工程里的sql都这么写的。
Sqldeveloper中能执行过是因为oracle有隐式转换,允许char转date,虽然不推荐这么写,但是这么写是没问题的。
真正的问题是为什么用程序跑的时候没进行隐式转换,或者说为什么隐式转换失败了。
Oracle版本是19c
用to_date()插入时间。
将to_char函数的结果结合case when和to_date函数,将结果转换成匹配的类型再插入
这个错误一般出现在时间字段上,即你插入的时间格式和数据库现有的时间格式不一致,解决的方法是格式化你
插入的时间: to_date('#','yyyy-mm-dd hh24:mi:ss')
去掉
to_char
使用
to_date('2020-10-13 00:00:00' ,'yyyy-MM-dd hh24:mi:ss')
用to_date()
创建得时候可以都用string类型,等写sql 得时候在转换相应得类型