如何写在身份证号码中提取年龄的sql语句
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何写在身份证号码中提取年龄的sql语句相关的知识,希望对你有一定的参考价值。
参考技术A在身份证号码中提取年龄的sql语句可以参考下面的代码:
用字符串函数SubString(@str, @StartPos, @nLen)
DECLARE @PersonalID VARCHAR(18)
SET @PersonalID = 'xxxxxx19491001xxxx'
SELECT CAST(substring(@PersonalID, 7, 8) AS SMALLDATETIME)--第7位开始,连续8位
扩展资料:
SQL 语句举例
CREATE: 创建数据库和表等对象
DROP: 删除数据库和表等对象
ALTER: 修改数据库和表等对象的结构
SELECT:查询表中的数据
INSERT:向表中插入新数据
UPDATE:更新表中的数据
DELETE:删除表中的数据
COMMIT: 确认对数据库中的数据进行的变更
ROLLBACK: 取消对数据库中的数据进行的变更
GRANT: 赋予用户操作权限
REVOKE: 取消用户的操作权限
参考资料来源:百度百科-sql语句
如何利用身份证号码计算出生年月,年龄及性别
生日期码
(身份证号码第七位到第十四位)表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。例如:1981年05月11日就用19810511表示。年龄就是2016-1981=35岁。
顺序码
(身份证号码第十五位到十七位)地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。其中第十七位奇数分给男性,偶数分给女性。例如第十七位是4就是女性,十七位是7就是男性。
公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
结构和形式
1.号码的结构
公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
2.地址码
表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。
3.出生日期码
表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。
4.顺序码
表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
5.校验码
根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。
年龄倒要做个计算,减法总会吧。本回答被提问者采纳 参考技术B 一、身份证号码的构成规则:
1、前6位为地区代码。具体请在网上搜索相关介绍。
2、7位至14位,出生年月日,7—10位出生年,11—12出生月(两位),13—14出生日。
3、15—18位,识别代码。其中第17位就是性别代码,单数为男,双数(含0)为女。
二、从身份证中提取相应的位数进行相应的计算。
1、提取出生年月日并用日期格式表示在单元格里(mid函数+date函数)。
(1)mid函数一共有三个参数:第1个表示字符串或单元格,第2个表示从第几位开始提(用数字表示),第3个表示需要提取几位(用数字表示)。如本例从身份证中提取出生年月日就是要提取第7位开始的8位。用函数表示为:=mid(存放身份证的单元格,7,8)
(2)这样不是标准的日期格式,为我们计算年龄增加了困难,所以要用date函数来生成日期格式。
date函数就是日期函数,一共有三个参数,具体表示为:=date(年,月,日)。如:=date(1966,3,13)得出的结果就是(1966-3-13)
本例需要结合两个函数进行。具体公式为:=DATE(MID(A2,7,4),MID(A2,11,2),MID(A2,13,2)),最后记得要将单元格格式设置为“日期”才行哦。
2、计算年龄(DATEDIF函数),具体公式为:=DATEDIF(B2,TODAY(),"y")
此函数有三个参数,第一个表示开始日期(本例为出生日期),第二个表示结束日期(本例为今天,公示中用了一个TODAY函数,表示提取计算机日期,此函数没有参数,所以只用了一个双括号表示),第三个参数为计算相差什么(年用Y,月用M,日用D。本例指相差的年,所以用Y)。
3、计算性别(if函数+mod函数)
(1)if函数:假如条件为真时显示什么,为假时显示什么。具体为:=if(条件,真时显示,假时显示)。如:=if(3>1,1,0)表示如果3大于1,就显示1,否则就显示0,显然,这个的结果是1。
(2)mod函数:表示求两数相除的余数。语法为:=mod(被除数,除数)。如:=mod(9,2)结果为1。
(3)本例需要提取第17位数字进行判断,单数为男,双数为女。很显然,一个数除以2,余数是1的是单数,余数是0的是双数。具体公式为:=IF(MOD(MID(A2,17,1),2)=1,"男","女")
以上是关于如何写在身份证号码中提取年龄的sql语句的主要内容,如果未能解决你的问题,请参考以下文章