在java应用程序中,数据表中有记录的time字段(属性为timestamp)其值为:“0000-00-00 00:00:00”

程序使用select 语句从中取数据时出现以下异常:

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

这是因为 “0000-00-00 00:00:00”在mysql中是作为一个特殊值存在的,但是在Java中, java.sql.Date 会被视为 不合法的值,被JVM认为格式不正确。

解决办法:

在jdbc的url加上   zeroDateTimeBehavior参数:

datasource.url=jdbc:mysql://localhost:3306/pe?useUnicode=true&characterEncoding=gbk&zeroDateTimeBehavior=convertToNull

对于值为0000-00-00   00:00:00(默认值)的纪录,根据不同的配置,会返回不同的结果:

不配置:默认返回异常

zeroDateTimeBehavior=round   0001-01-01   00:00:00.0

zeroDateTimeBehavior=convertToNull   null

JAVA连接MySQL数据库,在操作值为0的timestamp类型时不能正确的处理,而是默认抛出一个异常,就是所见的:java.sql.SQLException: Cannot convert value '0000-00-00 00:00:00' from column 1 to TIMESTAMP。这一问题在官方文档中有详细说明,详见如下链接:

http://bugs.mysql.com/bug.php?id=19274

http://dev.mysql.com/doc/refman/5.5/en/connector-j-installing-upgrading.html

在JDBC连接串中有一项属性:zeroDateTimeBehavior,可以用来配置出现这种情况时的处理策略,该属性有下列三个属性值:

l exception:默认值,即抛出SQL state [S1009]. Cannot convert value....的异常;

l convertToNull:将日期转换成NULL值;

l round:替换成最近的日期即0001-01-01;

因此对于这类异常,可以考虑通过修改连接串,附加zeroDateTimeBehavior=convertToNull属性的方式予以规避,例如:

jdbc:mysql://localhost:3306/mydbname?zeroDateTimeBehavior=convertToNull
从另一个层面讲,这类异常的触发也与timestamp赋值的操作有关,如果能够在设计阶段和记录写入阶段做好逻辑判断,避免写入 '0000-00-00 00:00:00'这类值,那么也可以避免出现 Cannot convert value '0000-00-00 00:00:00' from column N to TIMESTAMP的错误

Java问题——can not be represented as java.sql.Date 错误解决相关推荐

  1. Error:java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major错误解决

    Error:java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major错误解决 标签 ...

  2. FileNotFoundException: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset 错误解决

    错误现象 FileNotFoundException: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset ...

  3. mysql解决Value ‘0000-00-00 00:00:00’ can not be represented as java.sql.Timestamp

    同步发布:http://www.yuanrengu.com/index.php/mysqlsolvetimestamp.html 在使用mysql时,如果数据库中的字段类型是timestamp,默认为 ...

  4. 错误:Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp;的解决

    问题: 代码中查询MySQL的结果集时报错,提示Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp;刚开始 ...

  5. 关于Value ‘0000-00-00 00:00:00‘ can not be represented as java.sql.Timestamp异常问题的解读

    前提 对于必传的字段, 新需求改为非必填的时候,在测试环境出现了 Value '0000-00-00 00:00:00' can not be represented as java.sql.Time ...

  6. 解决java.sql.SQLException: Value ‘0000-00-00‘ can not be represented as java.sql.Date

    java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Date 异常的解决方法 查询数据时候遇到这个 ...

  7. java.sql.SQLException: Value ”0000-00-00 00:00:00“ can not be represented as java.sql.Timestamp

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

  8. can not be represented as java.sql.Timestamp

    使用hibernate开发程序的时候,有的时间字段没有必要填写,但是,以后hibernate查询的时候会报出 "java.sql.SQLException: Value '0000-00-0 ...

  9. 已解决:java.sql.SQLException: Value ‘0000-00-00 00:00:00‘ can not be represented as java.sql.Timestamp

    一.问题 一大早到公司 Mysql 中的一个 datetime 字段时碰到了一个 Cause: java.sql.SQLException: Value '0000-00-00 00:00:00' c ...

最新文章

  1. kubernetes关键特性和概述
  2. 向阿里学数字化转型,驱动业绩新增长
  3. Python实现固定效应回归模型实现因果关系推断
  4. 智慧城市顶层设计方法_主頁
  5. chrome 插件开发心得
  6. mysql数据库运行远程用户访问不了_MySQL数据库远程访问权限如何打开(两种方法)...
  7. dataset存入mysql_将dataset写入数据库
  8. python 批量下载网页图片_Python实现多线程批量下载图片
  9. 学计算机与学英语作文,初二英语作文(关于计算机与学习)
  10. 使用Playwright对ASP.NET Core应用执行功能测试
  11. JAVA面试要点002_Git中fetch和pull的区别
  12. [转载] python随笔2(列表的增删改查)
  13. 鸿蒙系统麒麟970芯片支持,受鸿蒙系统影响,众多华为手机或要说再见,包括麒麟970机型!...
  14. 中国移动计算机二面笔试题,中国移动笔试面试经验
  15. 介绍一种养眼的IDEA/Pycharm/Clion配色方案
  16. 国家信息安全证书体系解读(nisp,cisp)
  17. HDU-6396-Swordsman(文件输入+优先队列)
  18. 程序员面试总结 (非原创)
  19. PCB板上的字母代表哪些元器件?一文看全!
  20. 第四周项目3---单链表的应用之连接

热门文章

  1. jmeter工具进行性能测试
  2. 实用:常用PPT国内外不错的网站介绍
  3. C++ Primer Plus(第六版)第四章编程练习参考答案
  4. vscode登陆中国版leetcode
  5. oracle rman crosscheck,rman的crosscheck命令
  6. python输出姓名_Python生成随机不重复姓名昵称
  7. 计算机考研各科目分值分布,2019考研各科目试卷分值分布及结构分析
  8. Ubuntu 16.04 系统 gflags glog 安装
  9. 研究生放假因疫情未按时返回,扣助研补贴!实验室奇葩规定引热议
  10. html渐变轮播,html简单的渐变轮播插件