记一次线上报'Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp'错误的经历

今天工作中需要更新一张表的一些数据.

于是建了一张临时表,运行sql脚本插入数据到临时表之后,连这张临时表更新了数据;

更新完之后线上出现大量的Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp的错误.查库后发现被更新的那张表中有许多记录的某个日期字段的值被改成了'0000-00-00 00:00:00'.将所有的'0000-00-00 00:00:00'改回为null之后,问题解决.

分析原因

这张表在做这次更新之前是没有哪个日期字段的值是'0000-00-00 00:00:00',因此判定就是运行的sql脚本的问题,这个sql脚本是我根据数仓同事发我的txt,修改一些内容之后手动改为的.sql格式的.检查后发现,sql脚本里存在一些日期的值为'None'的,虽然在运行脚本的过程中没有报错,但是却把这些原本是null的日期存为了'0000-00-00 00:00:00',连表更新之后就导致了这个错误的发生.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值