select 身份证号码,now as 今天日期, datediff("yyyy",datevalue(format(mid(身份证号码,7,8),"0000/00/00")),now)as 年龄 from [sheet1$A:A] where len(身份证号码)=18 union all select 身份证号码,now as 今天日期,datediff("yyyy",datevalue(format(mid(身份证号码,7,6),"1900/00/00")),now) as 年龄 from [sheet1$A:A] where len(身份证号码)<>18
select 身份证号码,now as 今天日期,datediff("yyyy", datevalue(format(iif(len(身份证号码)=18, mid(身份证号码,7,8), "19"&mid(身份证号码,7,6)),"0000/00/00")),now) as 年龄 from [sheet1$A:A]