如果报错 Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp 是因为 jdbc默认最小时间 为 0001-01-01 00:00:00 所以转换为 sql timestamp 失败 解决办法 在连接数据库的url中加入&zeroDateTimeBehavior=convertToNull 类似 jdbc:mysql:///seckill?useUnicode=true&zeroDateTimeBehavior=convertToNull&characterEncoding=utf-8
如在测试queryByIdWithSeckill()方法的时候遇到了:
Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp错误,
那是因为:SuccessKilled表在创建的时候,有create_time字段(属性为timestamp),但并没有给该字段设定默认值。后插入数据时,create_time字段的值就变成了:0000-00-00 00:00:00.
"0000-00-00 00:00:00" 在MySQL中是作为一个特殊值存在的,但 java.sql.Date 将其视为不合法的值,格式不正确。
解决办法:
方法一:jdbc的url后面,追加上参数:
?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
方法二:给timestamp字段加上默认值
如以当前时间作为默认值,这样就不会是"0000-00-00 00:00:00"了。
为什么我赋了默认值这个字段还是null
请问大佬,我在后台怎么给时间字段赋值为当前时间呢,试过很多都没解决,求帮助。