Below SQL function is used to get age of a person from Date of Birth.
CREATE FUNCTION [dbo].[fn_GetAge] (@in_DOB AS DATETIME) RETURNS INT AS BEGIN DECLARE @age INT DECLARE @now DATETIME = ( SELECT GETDATE() ) --PRINT @NOW IF cast(datepart(m, @now) AS INT) > cast(datepart(m, @in_DOB) AS INT) SET @age = cast(datediff(yyyy, @in_DOB, @now) AS INT) ELSE IF cast(datepart(m, @now) AS INT) = cast(datepart(m, @in_DOB) AS INT) IF datepart(d, @now) >= datepart(d, @in_DOB) SET @age = cast(datediff(yyyy, @in_DOB, @now) AS INT) ELSE SET @age = cast(datediff(yyyy, @in_DOB, @now) AS INT) - 1 ELSE SET @age = cast(datediff(yyyy, @in_DOB, @now) AS INT) - 1 RETURN @age ENDExecuting below SQL query you will get following output..
select dbo.fn_GetAge('1987-02-28'), GETDATE() select dbo.fn_GetAge('1987-03-01'), GETDATE() select dbo.fn_GetAge('1987-03-02'), GETDATE()
Get Age |