我这边有一个业务,需要客户填写身份证号,自动计算他的出生日期和年龄

在sql中,具体的存储过程实现是这样的:

/***********************************************

根据身份证号计算出生日期和年龄

Date:2017-10-15

Author:xzl

条件:身份证号码

返回:出生日期和年龄

***********************************************/

/***

*根据身份证号计算出生日期和年龄

***/

create proc [dbo].[sp_GetBirthDate_Age]

@IDCard varchar(20),

@BirthDate varchar(20) output,

@Age int output

as

begin

--声明变量--

declare @BirthDateStr varchar(10)

declare @YearStr varchar(10)

declare @MonthStr varchar(10)

declare @DayStr varchar(10)

declare @NowDateStr varchar(20)

declare @AgeStr varchar(10)

----1、根据身份证号,计算出生日期---

--设置IDCard值

--set @IDCard ='445182199403123781'

--1)获取身份证号中年月日部分(返回:19940312)--

set @BirthDateStr = SUBSTRING(@IDCard,7,8)

--2)将获取年月日字符串转化为对应日期格式--

--2.1)获取年部分--

set @YearStr = SUBSTRING(@BirthDateStr,1,4)

--2.2)获取月部分--

set @MonthStr = SUBSTRING(@BirthDateStr,5,2)

--2.3)获取日部分--

set @DayStr = SUBSTRING(@BirthDateStr,7,2)

--3)返回组合后的日期---

set @BirthDate = @YearStr +'-'+@MonthStr+'-'+@DayStr

--2、根据出生日期和当前日期,计算年龄--

--1)获取当前时间的日期部分(返回:2017-10-15)--

set @NowDateStr = CONVERT(varchar(10),GETDATE(),23)

--2)获取当前日期与出生日期的年份(年龄) 返回:23岁 --

set @AgeStr = DATEDIFF(YEAR,@BirthDate,@NowDateStr)

--3)判断当前日期与出生日期(是否过生日,未过生日减去1岁)--

if(SUBSTRING(@BirthDate,6,5) <= SUBSTRING(@NowDateStr,6,5))

begin

--Cast()将字符转化为数字函数

set @Age = CAST(@AgeStr as int)

end

else

begin

set @Age = CAST(@AgeStr as int)-1

end

--输出计算后的返回结果--

select @BirthDate as 出生日期,@Age as 年龄

end

在sql中,执行上面可在可编程性-->存储过程中看到创建的存储过程

存储过程的调用:

--测试1:出生日期已过当前日期的---

declare @IDCard varchar(20)

declare @BirthDate varchar(20)

declare @Age int

set @IDCard=''

exec sp_GetBirthDate_Age @IDCard,@BirthDate output,@Age output

--返回结果--

--出生日期:1994-10-10 年龄: 23

--测试2:出生日期未过当前日期的---

declare @IDCard varchar(20)

declare @BirthDate varchar(20)

declare @Age int

set @IDCard=''

exec sp_GetBirthDate_Age @IDCard,@BirthDate output,@Age output

--返回结果--

--出生日期:1994-10-18 年龄: 22

调用后结果:

aaarticlea/png;base64,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" alt="" />

js中如何通过身份证号计算出生日期和年龄

在html中有如下标签 身份证号:

SQL 从身份证号得到出生日期、年龄、男女

), CONVERT(smalldatetime, SUBSTRING(b.IDCard, , )), ) AS BrithDate_Name, DATEDIFF(year, CONVERT(smal ...

sqlalchemy 模型中添加根据身份证号计算性别和年龄

class Users(Base, BaseMixin): username = Column(String(24)) id_Num = Column(String(18) ) # 身份证号码 @pr ...

Microsoft SQL Server 数据库 错误号大全

panchzh :Microsoft SQL Server 数据库 错误号大全0 操作成功完成. 1 功能错误. 2 系统找不到指定的文件. 3 系统找不到指定的路径. 4 系统无法打开文件. 5 拒 ...

Javascript 身份证号获得出生日期、获得性别、检查身份证号码

//---------------------------------------------------------- // 功能:根据身份证号获得出生日期 // 参数:身份证号 psidno // ...

SQL SERVER孤立帐号的处理

Step1:查询 Use KSHR_F23 Go exec sp_change_users_login @Action='Report' Go Step2:处理 Use KSHR_F23 Go exe ...

解决 SQL Server 所有帐号无 sysadmin 权限,且未启用 SQL Server 身份验证,sa 帐号也未启用的问题

解决 未启用 SQL Server 身份验证 的问题: 1. 运行 regedit,进入注册表编辑器 2. 打开:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Micro ...

随机推荐

【WCF】操作选择器

在开始吹牛之前,先说说.net Core的事情. 你不能把.NET Core作为全新体系来学习,因为它也是.NET.关于.NET Core,老周并不打算写什么,因为你懂了.NET,就懂了.NET Co ...

关于iOS导航控制器隐藏和显示会出现返回键失效&comma;导航栏标题动画异常

最近做的demo  bug出现了,我觉得这个bug出现得很经典所以贴出来给大家看看, bug演示就是:点击返回键失效出现如下gif图演示的内容 为啥会出现如此奇葩的bug,系统的返回键居然失效了,尴尬 ...

video标签的属性和方法总结

最近想做一个弹幕插件,查了很多video标签的属性和方法 error属性 在正常读取时候,使用媒体数据的过程中,video元素或audio元素的error属性为null,但是任何时候只要出现错误,er ...

caffe的db&lowbar;lmdb&period;hpp文件

先总的说一下: 类:LMDBCursor:  它干了点什么?它需要传入参数为:mdb_txn(传入它是因为用完它,把它absort掉), mdb_cursor;它应该是用来读出数据的: 类:LMDBT ...

C&num; 16进制与字符串、字节数组之间的转换(转)

1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串   //十进制转二进制 Console.WriteLine("十进制166的二进制表示: "+Convert.ToSt ...

H5移动前端完美布局之padding

序上次的提到了H5移动前端完美布局之-margin百分比的使用margin-top(left,right,bottom)的百分比在移动页面布局中对上下左右距离的处理,攻下城外再攘城内,今天看看padd ...

&lbrack;转&rsqb;select模型的一种技巧运用-libevent

参见网址 http://www.cppblog.com/xvsdf100/archive/2013/12/10/204689.html

译:Dataiku 白皮书之《在银行和保险行业应用数据科学》

原文链接:Data Science For Banking & Insurance 如果不能正常访问,请点击备份获取. 在银行和保险行业应用数据科学 互联网巨头和金融技术创业时代的求生和发展 ...

Azure 基础:File Storage

Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table. 笔者在前文中介绍了 Blob Storage 的基本用 ...

关于使用mybatis的一个惨痛教训

事情大概是这样的: 某个时刻之后所有的交易都崩溃了,查看数据库得知所有的数据都变成一样的了!!! 再查看log,发现执行了这样的语句:UPDATE XXX SET c1=v1,c2=v2 ...,没有 ...

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐