首页 > 代码库 > Timestamp解析0000-00-00 00:00:00报格式错误
Timestamp解析0000-00-00 00:00:00报格式错误
mysql中存储的是Timestamp类型的0000-00-00 00:00:00,
但是在java程序中使用
Timestamp.valueOf("0000-00-00 00:00:00")
打印出来这个值会报解析格式错误:
因为datetime类型取值范围:1000-01-01 00:00:00 到 9999-12-31 23:59:59
timestamp类型取值范围:1970-01-01 00:00:00 到 2037-12-31 23:59:59
Timestamp识别不了全0的日期格式。
在建表的时候,通常会使用如下的方式创建某个字段:
create_time TIMESTAMP NOT NULL DEFAULT ‘0000-00-00 00:00:00‘ COMMENT ‘创建时间‘,
也就是说如果设置的字段为null,会自动转换成0000-00-00 00:00:00。
而不是想当然的先用
Timestamp.valueOf("0000-00-00 00:00:00")
这种方式转换成全0,再insert到数据库中。
只要在连接db的配置中加入:zeroDateTimeBehavior=convertToNull
jdbc:mysql://localhost:3306/mydbname?zeroDateTimeBehavior=convertToNull
就可以在 0000-00-00 00:00:00 和 null之间进行转换。
那么如果在db中存储的是0000-00-00 00:00:00,读取出来的就是null
Timestamp解析0000-00-00 00:00:00报格式错误
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。