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

一、问题分析

问题
Error querying database. Cause: java.sql.SQLException: Value'0000-00-00 00:00:00' can not be represented as java.sql.Timestamp
分析

datetime数据库中可为空,其默认值为“0000-00-0000:00:00”,因MySQL的时间类型datetime范围是1000-01-01 00:00:00 到 9999-12-31 23:59:59,所以报错。

二、解决方案

1、在配置数据库连接的url上添加zeroDateTimeBehavior的配置。

示例:
修改前jdbc配置:

jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&characterSetResults=UTF-8

修改后jdbc配置 :

jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull
2、zeroDateTimeBehavior的所有配置:
  • 没有配置。

    抛出异常如上所示

  • zeroDateTimeBehavior=round

    返回值为 0001-01-01 00:00:00.0

  • zeroDateTimeBehavior=convertToNull

    返回值为 null

3、注意事项

如果是xml配置,需要转义:

转义符号原符号含义
&lt;<小于号
&gt;>大于号
&amp;&
&apos;单引号
&quot;"双引号

转载于:https://www.cnblogs.com/diffx/p/9994019.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值