SQL--通过身份证号得到年龄的
/* =======================================
创 建 人:CuiYaChao
创建日期:2017-08-16
功能描述:通过身份证号来计算年龄
单元名称: Fun_GetCard
======================================= */
IF EXISTS (SELECT * FROM sys.objects WHERE name='Fun_GetCard')
DROP FUNCTION Fun_GetCard
GO
CREATE FUNCTION Fun_GetCard(@CardNo NVARCHAR(30))
RETURNS NVARCHAR(20)
AS
BEGIN
DECLARE @sResult NVARCHAR(20)=''
DECLARE @CardNoTwo NVARCHAR(30)=''
DECLARE @sYear INT =0
SELECT @CardNoTwo=REPLACE(@CardNo,' ','')
--18位的身份证号
IF LEN(@CardNoTwo)=18
BEGIN
SELECT @sResult=DATEDIFF(YEAR,SUBSTRING(@CardNoTwo,7,4),GETDATE())
END
--15位的身份证号
ELSE
BEGIN
SELECT @sYear=CAST(SUBSTRING(@CardNoTwo,7,2) AS INT)
--2000年前的或者 本年度前的
IF @sYear>17
BEGIN
SELECT @sResult=DATEDIFF(YEAR,CAST(('19'+CAST(@sYear AS NVARCHAR(10))) AS NVARCHAR(10)),GETDATE())
END
--2000年至本年度期间的
ELSE
BEGIN
--2010年之后的
IF LEN(@sYear)=2
BEGIN
SELECT @sResult=DATEDIFF(YEAR,CAST(('20'+CAST(@sYear AS NVARCHAR(10))) AS NVARCHAR(10)),GETDATE())
END
--2000年至2009年的
IF LEN(@sYear)=1
BEGIN
SELECT @sResult=DATEDIFF(YEAR,CAST(('200'+CAST(@sYear AS NVARCHAR(10))) AS NVARCHAR(10)),GETDATE())
END
END
END
RETURN @sResult
END
GO
--=================================================================================
SELECT DATEDIFF(YEAR,'1991','2017')
SELECT SUBSTRING('130503670401001',7,2)
SELECT dbo.Fun_GetCard('412723199105051238')'年龄'
SELECT dbo.Fun_GetCard('130503000401001')'年龄'
SQL--通过身份证号得到年龄的的更多相关文章
- SQL语句通过身份证号计算年龄
SQL语句通过身份证号计算年龄 1.截取身份证号上的出生日期 身份证一般为18位数和15位数 18位数身份证的第7-10位数是出生年份,第11-14位数是出生月日,所以18位身份证的年龄计算如下 su ...
- Js 根据身份证号获取年龄-性别
参考:http://www.tuicool.com/articles/J7r2ien 方式一: $scope.GetAgeAndSexByIDNum = function (IdCardNO) { / ...
- SQL 从身份证号得到出生日期、年龄、男女
), CONVERT(smalldatetime, SUBSTRING(b.IDCard, , )), ) AS BrithDate_Name, DATEDIFF(year, CONVERT(smal ...
- SQL 根据身份证号码获取年龄的函数
在数据库的运用过程中,我们时常会碰到根据身份证号码来获取当前的年龄,今天我在这里写了一个函数,就是关于获取年龄的 create or replace function FUNC_COMPARE_SFZ ...
- sql 根据身份证号码计算年龄
,), GETDATE()) / 365.25) from ConstructionInfo
- PHP实现15位身份证号转18位
PHP实现15位身份证号转18位 参考博客: 作者:selfimpr626 来源:CSDN (根据身份证号计算年龄,15位身份证号码转18位) 原文:https://blog.csdn.net/wei ...
- sql server 根据身份证号计算出生日期和年龄的存储过程
我这边有一个业务,需要客户填写身份证号,自动计算他的出生日期和年龄 在sql中,具体的存储过程实现是这样的: /******************************************** ...
- 教你一招:根据身份证号计算出生年月和年龄 text函数和mid函数混用 datedif函数和today函数混用
在电子表格Excel中,使用text函数和mid函数混用,根据身份证号计算出生年月: =text(mid(A2,,),"0!/00!/00") #0!/00!/00 为日期的格式# ...
- js脚本根据身份证号获取性别、年龄、家庭地址、生日
做项目测试时需要根据身份证号获取其信息,也不想调接口,就自己在本地通过收集资料整合了一个
随机推荐
- 归并排序(Python)
一.采用分治策略:将原问题划分成n个规模较小的但结构和原问题相同的子问题,递归解决这些子问题后合并各个结果从而得到原问题的解. 二.分治策略的步骤: 分解:将原问题分解成一系列子问题 解决:子问题粒度 ...
- ES什么时候会平衡分片
"cluster.routing.allocation.balance.shard":"0.45f",//定义分配在该节点的分片数的因子 阈值=因子*(当前节点 ...
- 89.[NodeJS] Express 模板传值对象app.locals、res.locals
转自:https://blog.csdn.net/Elliott_Yoho/article/details/53537437 locals是Express应用中 Application(app)对象和 ...
- (转)PHP(其他语言类似)编码的规范性
为了提高工作效率,保证开发的有效性和合理性,并最大程度提高程序代码的可读性和可重复利用性,提高沟通效率,需要一份代码编辑规范. 一.文件标记: 1.所有php文件 ...
- 你不知道的JavaScript(九)switch语句
在c/c++.java这些强类型的语言中switch语句的表达式和case分支中的条件值都只能是char类型或整数.JS的switch语句有些不同,它可以是JS中的任意一种类型,这一点有些朋友可能并没 ...
- 新疆大学OJ(ACM) 1047: string 字符串排序
1047: string 时间限制: 1 Sec 内存限制: 128 MB 题目描述 有n个字符串字符串n<=50000,把所有字符串串起来,得到一个字典序最小的字符串. 输入 输入第一行是一 ...
- Python 计算相似度
#计算相似度 #欧式距离 # npvec1, npvec2 = np.array(det_a), np.array(det_b) # similirity=math.sqrt(((npvec1 - n ...
- 马云谈AI:未来10-15年传统制造业的痛苦将远超今天的想象
马云谈AI:未来10-15年传统制造业的痛苦将远超今天的想象 “未来10到15年,传统制造业面临的痛苦将会远远超过今天的想象,企业如果不能从规模化.标准化向个性化和智慧化转型,将很难生存下去.” 9月 ...
- Django------->>>modle
import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "modletest.settings") ...
- 关于Subversion主从备份方式的调整(全量、增量脚本)更新
本文引用于http://blog.chinaunix.net/uid-25266990-id-3369172.html 之前对Subversion服务器作了迁移,关于SVN的架构也走了调整,有单一的服 ...