身份证 取性别,年龄,出生日期

with T as (
    SELECT [idCard],
    (right(left([idCard],10),4)+'-'+right(left([idCard],12),2)+'-'+right(left([idCard],14),2)) 'Birthday',
    (case when (left(right([idCard],2),1) % 2 = 0) then '女' else '男' end ) Sex FROM [TestIDCard]
     where len([idCard])=18
        union all
    SELECT [idCard],
    ('19'+right(left([idCard],8),2)+'-'+right(left([idCard],10),2)+'-'+right(left([idCard],12),2)) 'Birthday',
    (case when (right([idCard],1) % 2 = 0) then '女' else '男' end ) Sex FROM [TestIDCard]
     where len([idCard])=15
 ) 
  
 select *,(year(getdate())-(cast(left(T.Birthday,4) as int))) 'AGE' from T
原文地址:https://www.cnblogs.com/jzb-dev/p/4971950.html