使用t-sql从身份证号中提取生日

使用t-sql从身份证号中提取生日,一下是转换16位身份证号的例子,仅供参考。

create function getDateFromID(

@id char(15)

)

returns datetime

as

begin

declare @birthPart char(6);

set @birthPart = substring(@id,7,6);

declare @year int;

set @year = cast(left(@birthPart,2) as int);

if @year < 10 

SET @year = 2000 + @year;

else

SET @year = 1900 + @year;



declare @birthday datetime;

set @birthday = cast(cast(@year as char(4)) + '-' 

+ substring(@birthpart,3,2) + '-'

+ substring(@birthpart,6,2) as datetime)

return @birthday

end

GO

declare @id char(16)

set @id = '510106830328511';

print dbo.getDateFromID(@id)

 

你可能感兴趣的:(t-sql)