身份证分为18位和15位,对应的日期格式分别为
18位身份证:7-13位yyyyMMdd,
15位身份证:7-11位yyMMdd。
今天由于个人的失误,得到一个深刻的教训,刻苦铭心,以后绝不再犯。
深刻反思(update,delete 一定不要忘了加where):

虽然本地数据库有备份的话可以回滚,不过以防万一,本地测试数据库一般,不会保存那么勤,多个人同时用,你会滚难免会出现异常,特别是对于一个实习生,还是谨慎为好,自己写了几个表测试之后,就对数据库进行修复工作了。。。自己的错还要自己来啊。
大致sql代码如下:
--对18位身份证日期进行修改,大范围修改,2月29日的可能有错,需要下面的查询语句人工检查
update kp_user_info
set birthday=
case when substring(idCard,7,4)<'1753'
then null
when SUBSTRING(idCard,11,2)='00' or SUBSTRING(idCard,11,2)>'12'
then null
when SUBSTRING(idCard,1

本文讲述了作者在SQL Server中因操作失误导致生日字段错误,通过编写SQL语句进行修复的过程。主要涉及18位和15位身份证日期格式的转换,并强调了在执行update和delete操作时务必添加where条件。
最低0.47元/天 解锁文章
1219

被折叠的 条评论
为什么被折叠?



