码迷,mamicode.com
首页 > 其他好文 > 详细

根据身份证得到生日函数

时间:2017-01-03 14:37:02      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:示例   idc   class   ring   http   软件测试   and   declare   create   

Go

--创建函数(函数来自csdn,作者不详)

create function [dbo].[Get_birthday]

(

    @idcardno nvarchar(50)

)

returns varchar(10)

as

begin

    declare @birthday datetime

 

if (len(@idcardno)=15 or len(@idcardno)=16) and substring(@idcardno,9,2) between 1 and 12   andsubstring(@idcardno,11,2) between 1 and 31

 set @birthday= convert(varchar(10),‘19‘+substring(@idcardno,7,2)+‘-‘+substring(@idcardno,9,2)+‘-‘+substring(@idcardno,11,2),120)

else if len(@idcardno)=18 and substring(@idcardno,7,2)>=19 and substring(@idcardno,11,2) between 1 and 12   andsubstring(@idcardno,13,2) between 1 and 31

 set @birthday= convert(varchar(10),substring(@idcardno,7,4)+‘-‘+substring(@idcardno,11,2)+‘-‘+substring(@idcardno,13,2),120)

else

 set @birthday=null

 return(convert(varchar(10),@birthday,120))

end

 

--测试示例

select dbo.[Get_birthday](‘222222198306043213‘)

 

--运行结果

/*

1983-06-04

*/

根据身份证得到生日函数

标签:示例   idc   class   ring   http   软件测试   and   declare   create   

原文地址:http://www.cnblogs.com/accumulater/p/6244469.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!