从身份证号码,截取出生的年,月和日
例    
       IDcard                                DIyear        IDdate
   412724680119251       截取的结果应该是    680119        0119
   410882198607057515    截取的结果应该是    19860705      0705
非常感谢!

解决方案 »

  1.   

    UPDATE TABLENAME
      SET DIYEAR=CASE WHEN LEN(IDcard)<18 THEN SUBSTRING(IDcard,7,6) ELSE SUBSTRING(IDcard,7,8) END,
          IDdate=CASE WHEN LEN(IDcard)<18 THEN SUBSTRING(IDcard,9,4) ELSE SUBSTRING(IDcard,11,4) END
      

  2.   

    SELECT IDCARD,DIYEAR=CASE WHEN LEN(IDcard)<18 THEN SUBSTRING(IDcard,7,6) ELSE SUBSTRING(IDcard,7,8) END,
          IDdate=CASE WHEN LEN(IDcard)<18 THEN SUBSTRING(IDcard,9,4) ELSE SUBSTRING(IDcard,11,4) END
    FROM TABLENAME
      

  3.   

    declare @IDcard varchar(18)
    select @IDcard='412724680119251'select 
    case len(@IDcard) 
    when 15 then substring(@IDcard,7,6)
    when 18 then substring(@IDcard,7,8)
    else ''
    end as 出身日期