zoukankan      html  css  js  c++  java
  • 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; " 双引号
  • 相关阅读:
    vim配置文件解析
    VIM使用技巧5
    补不manjaro系统
    linux下终端录制
    VIM的修炼等级
    VIM使用技巧4
    64位linux 汇编
    linux下编译安装gcc5.1
    Git学习笔记
    HTML实体符号代码速查表
  • 原文地址:https://www.cnblogs.com/diffx/p/9994019.html
Copyright © 2011-2022 走看看