Incorrect datetime value: '' for column 'ordertime' at row 1 Query

时间:2023-01-28 11:00:27

前言

在往数据库表里插入 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)));

前者没试过,后者亲测可以