首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Exception >

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

2014-01-26 
程序执行后抛出异常: java.sql.SQLException: Value 0000-00-00 can not be represented as java.sql.Times

程序执行后抛出异常:

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

是什么原因造成的此种异常?
是否是mysql jdbc驱动的问题?
这种异常如何解决?

------解决方法--------------------------------------------------------
'0000-00-00 ' 不是一个有效的日期呀.

你首先要检查这个 '0000-00-00 ' 是哪里来的,然后改正就可以了
------解决方法--------------------------------------------------------
timestamp yyyymmddhhmmss
------解决方法--------------------------------------------------------
timestamp是mysql中的一个特殊类型,无须自己给值,你insert,update纪录,ts就是你动作的时间,如果需要纪录自己的时间,使用datetime
------解决方法--------------------------------------------------------
是啊,时间格式不正确
------解决方法--------------------------------------------------------
java.sql.Timestamp传入参数的格式不正确(0000-00-00)
------解决方法--------------------------------------------------------
换一个比较低版本的驱动就好了
------解决方法--------------------------------------------------------
给jdbc url加上 zeroDateTimeBehavior参数:

datasource.url=jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true


zeroDateTimeBehavior=round是为了指定MySql中的DateTime字段默认值查询时的处理方式;默认是抛出异常,

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

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

zeroDateTimeBehavior=convertToNull null


 

        

热点排行