程序执行后抛出异常:
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