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

至于java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.T

2011-11-25 
关于java.sql.SQLException: Value 0000-00-00 can not be represented as java.sql.Timestamp程序执行

关于java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Timestamp
程序执行后抛出异常:

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


热点排行