sql server 2008,一张表格中身份证号如何求现在年龄超过18岁的??18位的身份证号

2020-05-19 教育 265阅读
select * from 查询表 where
DATEDIFF(year, convert(datetime , SUBSTRING (十八位身份证号,7,8)),GETDATE()) >18

注释:
SUBSTRING ( 字符串,7,8)) 从字符串的第7位开始取8个字符。
SUBSTRING (十八位身份证号,7,8))即取得身份证中的年月日,如:SUBSTRING (‘220135198505061234’,7,8)), 取得的值为:19850506

DATEDIFF(year,日期1,日期2) 取得 2个日期相差的年;

convert(datatime ,字符串) 把字符串转换成日期。如:convert(datetime , SUBSTRING (’220135198505061234’,7,8)) 的值为:1985-05-06 00:00:00.000

则:
select DATEDIFF(year, convert(datetime , SUBSTRING (‘220135198505061234’,7,8)),GETDATE()) 的值的27.
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com