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; " 双引号
  • 相关阅读:
    Qt之根据扩展名获取文件图标、类型
    C++根据扩展名获取文件图标、类型
    Qt之QFileIconProvider(根据扩展名获取文件图标、类型)
    Qt之QTemporaryFile
    Qt之QFileIconProvider
    Qt之字典划词
    Qt之滚动字幕
    Qt之QThread
    Python 安装 httplib2
    Qt之QTimer
  • 原文地址:https://www.cnblogs.com/diffx/p/9994019.html
Copyright © 2011-2022 走看看