今天发现日志多了很多bug,从bug提示可以看出有一个日期字段返回后set失败。这个字段是前几天同事加的一个日期字段,重新走了一遍业务操作,发现对这个字段的读取并没有报错,经过比较发现只有对老数据的读取才会提示这个bug:
抱着怀疑的态度执行了如下sql:
select * from Goods ug where ug.activate_limit_date='0000-00-00';
好家伙,居然查出了200多条记录,可dbeaver展示却显示这个字段全是空(可能是工具内部做了特殊处理)。
经过了解,这个字段实际允许为空,添加该字段的时候可能导致历史数据初始化成了“0000-00-00”。
既然如此,直接更新为null即可完美解决:
update Goods set activate_limit_date=null where activate_limit_date='0000-00-00';
- 我猜大家初次检索这个bug的时候,百度都是推荐在url连接字符串添加zeroDateTimeBehavior=convertToNull,但是经过测试发现返回null并不会报错,那么,我们是否需要反思数据中为什么会出现'0000-00-00'呢?