CREATE FUNCTION [dbo].[Fn_GetAge](@IdCard NVARCHAR(18),@LimitdDate DATETIME)RETURNS INT AS BEGIN DECLARE @BirthYear VARCHAR(4) DECLARE @BirthMonth VARCHAR(2) DECLARE @BirthDay VARCHAR(2) DECLARE @BirthDate DATETIME DECLARE @Age INT DECLARE @Length INT SET @Age = 0 BEGIN SET @Length = LEN(@IdCard) IF(@Length = 15) BEGIN SET @BirthYear = ‘19‘ + SUBSTRING(@IdCard,7,2) SET @BirthMonth = SUBSTRING(@IdCard,9,2) SET @BirthDay = SUBSTRING(@IdCard,11,2) END ELSE IF(@Length = 18) BEGIN SET @BirthYear = SUBSTRING(@IdCard,7,4) SET @BirthMonth = SUBSTRING(@IdCard,11,2) SET @BirthDay = SUBSTRING(@IdCard,3,2) END SET @BirthDate = @BirthYear + ‘-‘ + @BirthMonth + ‘-‘+ @BirthDay SET @Age = DATEDIFF(YEAR,@BirthDate,@LimitdDate) IF(DATEPART(MONTH,@BirthDate) > DATEPART(MONTH,@LimitdDate)) BEGIN SET @Age = @Age - 1 END ELSE IF(DATEPART(MONTH,@BirthDate) = DATEPART(MONTH,@LimitdDate)) BEGIN IF(DATEPART(DAY,@BirthDate) > DATEPART(DAY,@LimitdDate)) BEGIN SET @Age = @Age - 1 END END END RETURN @AgeEND