数据库日期字段值为:0000-00-00 00:00:00,报java.sql.SQLException: Zero date value prohibited
发布时间
阅读量:
阅读量
问题如题目所示,会报如下异常。
com.mysql.cj.exceptions.DataReadException: Zero date value prohibited
at com.mysql.cj.result.SqlTimestampValueFactory.localCreateFromTimestamp(SqlTimestampValueFactory.java:99) ~[mysql-connector-java-8.0.16.jar!/:8.0.16]
at com.mysql.cj.result.SqlTimestampValueFactory.localCreateFromTimestamp(SqlTimestampValueFactory.java:50) ~[mysql-connector-java-8.0.16.jar!/:8.0.16]
at com.mysql.cj.result.AbstractDateTimeValueFactory.createFromTimestamp(AbstractDateTimeValueFactory.java:87) ~[mysql-connector-java-8.0.16.jar!/:8.0.16]
at com.mysql.cj.protocol.a.MysqlTextValueDecoder.decodeTimestamp(MysqlTextValueDecoder.java:79) ~[mysql-connector-java-8.0.16.jar!/:8.0.16]
at com.mysql.cj.protocol.result.AbstractResultsetRow.decodeAndCreateReturnValue(AbstractResultsetRow.java:87) ~[mysql-connector-java-8.0.16.jar!/:8.0.16]
at com.mysql.cj.protocol.result.AbstractResultsetRow.getValueFromBytes(AbstractResultsetRow.java:241) ~[mysql-connector-java-8.0.16.jar!/:8.0.16]
at com.mysql.cj.protocol.a.result.ByteArrayRow.getValue(ByteArrayRow.java:91) ~[mysql-connector-java-8.0.16.jar!/:8.0.16]
at com.mysql.cj.jdbc.result.ResultSetImpl.getTimestamp(ResultSetImpl.java:923) ~[mysql-connector-java-8.0.16.jar!/:8.0.16]
at com.mysql.cj.jdbc.result.ResultSetImpl.getTimestamp(ResultSetImpl.java:968) ~[mysql-connector-java-8.0.16.jar!/:8.0.16]
at com.zaxxer.hikari.pool.HikariProxyResultSet.getTimestamp(HikariProxyResultSet.java) ~[HikariCP-3.2.0.jar!/:na]
解决方法:
在连接数据库后添加如下参数---------jdbc:mysql://主机名:端口号/数据库名?zeroDateTimeBehavior=convertToNull
原因:
官方文档(https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-installing-upgrading-3-0-to-3-1.html),是如下解释。

大体意思为:当数据库遇到0000-00-00 00:00:00,这种情况时,会有三种转化,分别是“exception,round,convertTonull”,默认处理情况是转化为exception,就是抛出一个异常。
所有我们可以给它设置为其他两个属性(如:zeroDateTimeBehavior=convertToNull )。
exception(默认值),它会抛出一个SQLState为的SQLException S1009。
convertToNull,它返回 NULL而不是日期。
round,将日期四舍五入为最接近的最近值 0001-01-01。
若有错误的地方,欢迎留言!
全部评论 (0)
还没有任何评论哟~
