描述:web项目,Java修改oracle数据库内某张表的时间列数据,在本地运行没有报错,但是打成war包上传至tomcat运行时,会报此错误ORA-01841: (full) year must be between -4713 and +9999, and not be 0
sql语句:
update tablename set createdate=to_date(?,‘yyyy-mm-dd hh24:mi:ss’)
错误的方法:
Date date = new Date();
DateFormat d1 = DateFormat.getDateInstance();
string createdate = d1.format(date);
pt.setString(1,createdate);
这样运行本地没有问题,但是线上测试就会报错。查看日志信息发现是 时间格式不正确
时间格式是:Apr 23, 2019,而这样的格式oracle是无法识别的
修改后方法:
java.util.Date utilDate = new java.util.Date();
java.sql.Date createdate= new java.sql.Date(utilDate.getTime());
pt.setString(1,createdate);
运行OK
时间格式是:2019-04-23