oracle根据身份证号字段信息更新出生日期
因为身份证号数据有错的,我写了以下条件:updated401_ltsetD401_04=to_date(substr(d401_01,7,8),'yyyy-mm-dd')...
因为身份证号数据有错的,我写了以下条件:
update d401_lt set D401_04 = to_date(substr(d401_01,7,8),'yyyy-mm-dd')
where lengthb(d401_01)=18 and substr(d401_01,7,4)<='2012'
and substr(d401_01,11,2)<='12' and substr(d401_01,13,2)<='31'
and substr(d401_01,7,4)<>'0000' and substr(d401_01,11,2)<>'00'
and substr(d401_01,13,2)<>'00';
可运行时还是错误:文字与格式字符串不匹配;我感觉我这条件都把错误数据排除了啊,怎么还有错,求高手帮忙! 展开
update d401_lt set D401_04 = to_date(substr(d401_01,7,8),'yyyy-mm-dd')
where lengthb(d401_01)=18 and substr(d401_01,7,4)<='2012'
and substr(d401_01,11,2)<='12' and substr(d401_01,13,2)<='31'
and substr(d401_01,7,4)<>'0000' and substr(d401_01,11,2)<>'00'
and substr(d401_01,13,2)<>'00';
可运行时还是错误:文字与格式字符串不匹配;我感觉我这条件都把错误数据排除了啊,怎么还有错,求高手帮忙! 展开
3个回答
展开全部
拿这些条件查询一下
select substr(d401_01,7,8) from d401_lt
where lengthb(d401_01)=18 and substr(d401_01,7,4)<='2012'
and substr(d401_01,11,2)<='12' and substr(d401_01,13,2)<='31'
and substr(d401_01,7,4)<>'0000' and substr(d401_01,11,2)<>'00'
and substr(d401_01,13,2)<>'00';
检查一下是否还有错误数据,如果有,再加条件限制
select substr(d401_01,7,8) from d401_lt
where lengthb(d401_01)=18 and substr(d401_01,7,4)<='2012'
and substr(d401_01,11,2)<='12' and substr(d401_01,13,2)<='31'
and substr(d401_01,7,4)<>'0000' and substr(d401_01,11,2)<>'00'
and substr(d401_01,13,2)<>'00';
检查一下是否还有错误数据,如果有,再加条件限制
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好像是这句有问题
set D401_04 = to_date(substr(d401_01,7,8),'yyyy-mm-dd')
set D401_04 = to_date(substr(d401_01,7,8),'yyyy-mm-dd')
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询