前言
在往数据库表里插入 Date() 数据类型时,报了如上错误。我的情况是
数据库:MySQL
表里日期时间字段类型 :datetime (注意和 Date 区别)
插入字段的值 : new Date()
解决
解决问题思路来源
如上大神分析的非常明白了,数据库表里限制的 datetime 需要 yyyy-MM-dd HH:mm:ss 类型数据,而 java 代码中,我们为字段赋值是 new Date() 得到的是 Tue Jan 05 14:28:41 CST 2016 ,明显不符合要求,但是如果 mysql 版本和 mysql-jdbc 驱动版本一致会,jar包会自动转换,但是这里我的可能两者不一致,所以没转换就报错了,插入不了。
所以解决起来 要么更换两者版本一致 要么如下我的做法,手动将 时间格式转换。
//取当前时间
Date nowdate=new Date();
//转换时间格式
SimpleDateFormat simpleDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
object.setTime(Timestamp.valueOf(simpleDate.format(nowdate)));
前者没试过,后者亲测可以