sql 根据身份证号,查询出年龄

来源:百度知道 编辑:UC知道 时间:2024/07/05 08:02:08
如题,我有一个信息表,表名为ab,有一列字段是Col003,该列存放的是身份证号,我想知道什么样的sql语句可以根据身份证号求出年龄,我需要查询年龄满足多少的信息,身份证号分15位和18位,很急,谢谢大家

身份证的年龄字段知道吧,查出来,用datediff算就知道了
15位18位给个case语句判断就行了

一楼思路 正确

select datediff(year,cast(substring(Col003,7,8) as datetime),getdate()) from ab

哪需要那么复杂的,一句简单的就搞定了
select 2009-substring(col003,substring( (Length(col003)-1)/2,1,1)-2,4)+1 from ab

select case when length(col003) = 15 then "19"||col003.substring(6,12) when length(col003) = 18 then col003.substring(6,14) else
'' end as birthday from ab where year(birthday) = year(current date)-&old

以上为算法,自己利用数据库相应的函数改编一下,首先求出生日,然后生日年 = 今年 - 岁数.