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脚本根据身份证号获取性别、年龄、家庭地址、生日
做项目测试时需要根据身份证号获取其信息,也不想调接口,就自己在本地通过收集资料整合了一个
随机推荐
- BZOJ2154: Crash的数字表格 & BZOJ2693: jzptab
[传送门:BZOJ2154&BZOJ2693] 简要题意: 给出n,m,求$\sum_{i=1}^{n}\sum_{j=1}^{m}LCM(i,j)$ 题解: 莫比乌斯反演(因为BZOJ269 ...
- iOS CoreData介绍和使用(以及一些注意事项)
iOS CoreData介绍和使用(以及一些注意事项) 最近花了一点时间整理了一下CoreData,对于经常使用SQLite的我来说,用这个真的有点用不惯,个人觉得实在是没发现什么亮点,不喜勿喷啊.不 ...
- 51nod-1503 猪和回文 - 二维矩阵上的dp
题目链接 一只猪走进了一个森林.很凑巧的是,这个森林的形状是长方形的,有n行,m列组成.我们把这个长方形的行从上到下标记为1到n,列从左到右标记为1到m.处于第r行第c列的格子用(r,c)表示. 刚开 ...
- 前端学习之路——gulp篇
一.构建gulp环境 1.下载nodejs gulp基于node.js,要通过nodejs的npm安装gulp,所以要先安装node.js环境.(英文官网/中文官网链接). 通过cmd命令窗口确定安装 ...
- 比较好的Dapper封装的仓储实现类 来源:https://www.cnblogs.com/liuchang/articles/4220671.html
using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; usin ...
- eclipse的maven工程视图切换
上面图切换成下面图: 点击eclipse右上角,如下图红圈,然后在选择javaEE这样就切换成javaEE视图了
- Mojo C++ Bindings API
This document is a subset of the Mojo documentation. Contents Overview Getting Started Interfaces Ba ...
- NOIp2018模拟赛四十一
现在是下午15:36,我已经改完题了...刷新纪录 A题叫B,B题叫A是什么操作??? 我离200只差一个SBFA.jpg 成绩:0+100+10=110 被虐啦...今天九个阿克的Orz.A题是个神 ...
- javascript的var声明变量和不用var声明变量在全局作用域的区别;
在全局作用域下,使用var定义的变量不可以delete,没有var 定义的变量可以delete.也就说明隐含全局变量严格来说不是真正的变量,而是全局对象的属性,因为属性可以通过delete删除,而变量 ...
- Artisan 命令
php artisan key:generate 生成 App Key php artisan make:controller 生成控制器 php artisan make:model 生成模型 ph ...