如何根据身份证号,求出出生日期呀?
如何根据身份证号,求出出生日期呀?
------解决方案--------------------select case when len(身份证号)=15 then  '19 ' + substring(身份证号,7,2)+ '/ '+substring(身份证号,9,2)+ '/ '+substring(身份证号,11,2)  
 		when len(身份证号)=18 then substring(身份证号,7,4)+ '/ '+substring(身份证号,11,2)+ '/ '+substring(身份证号,13,2)  
 		else  ' ' end as 出生日期 from 表名 
------解决方案--------------------新的身份证的的数字构成是 
 在18位数字中 前6位是地址码,接着的8位是生日码,接着的2位为顺序码 
 再接着的一位是顺序性别码(既是包含在顺序码中有代表了性别,单数为男性双数为女性) 
 最后一位是校验码~~~~~   
 15位身份证比18位少的3位是:出生年份只取两位(如87),没有校验码   
 希望这些信息对你有帮助~~   
 我写了个基本存储过程,有必要你可以修改的~~ 
 create proc spidcardnumberTObirthday 
 @IdNumber nvarchar(18)= '000000000000000000 ' 
 as 
 declare @birthnumber nvarchar(8) 
 if (len(@IdNumber)=18) begin 
 select @birthnumber=substring(@IdNumber,7,8) 
 print  '该身份证持有者的生日为: '+substring(@birthnumber,1,4)+ '年 '+ 
 substring(@birthnumber,5,2)+ '月 '+substring(@birthnumber,7,2)+ '日 ' 
 end 
 else if (len(@IdNumber)=15) begin 
 select @birthnumber=substring(@IdNumber,7,6)  
 print  '该身份证持有者的生日为: '+substring(@birthnumber,1,2)+ '年 '+ 
 substring(@birthnumber,3,2)+ '月 '+substring(@birthnumber,5,2)+ '日 ' 
 end 
 else 
 print  '身份证号码不合法 '     
 thank you ~~~~