create proc IdToAgeProc
@Idcard varchar(20),
@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)
set @birthDateStr =SUBSTRING(@Idcard,7,8)
set @nowdateStr = CONVERT(varchar(10),GETDATE(),112)
set @AgeStr=DATEDIFF(YEAR,@birthDateStr,@nowdateStr)
if(SUBSTRING(@birthDateStr,5,4) <= SUBSTRING(@nowdateStr,5,4))
begin
--Cast()将字符转化为数字函数
set @Age = CAST(@AgeStr as int)
end
else
begin
set @Age = CAST(@AgeStr as int)-1
end
--输出计算后的返回结果--
select @Age as 年龄
end
drop proc IdToAgeProc
--测试1:出生日期已过当前日期的---
declare @Idcard varchar(20)
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载