MYSQL '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp

来源:互联网 发布:怎么在u盘中装ubuntu 编辑:程序博客网 时间:2024/06/10 03:06

在使用MySql 时, 数据库中的字段类型是timestamp的,默认为0000-00-00, 会发生异常:java.sql.SQLException: Value ‘0000-00-00 ’ can not be represented as java.sql.Timestamp.

数据库里面默认值是这一串0,但是JDBC不能将'0000-00-00 00:00:00'转化为一个为一个java.sql.Timestamp,在Java中,想创建一个java.util.Date,使其值为 '0000-00-00'也是不可能的,最古老的日期应该是'0001-01-01 00:00:00',所以报错了。

解决办法

给jdbc url加上 zeroDateTimeBehavior参数:

zeroDateTimeBehavior=convertToNull

默认:

取值exception

driver-url=jdbc:mysql://127.0.0.1/test?zeroDateTimeBehavior=exception

************************************

这是里job调用dao的报错。所以在job里面需要捕获异常,防止job遇到异常停止。

0 0