This function can be used to calculate the Age on a particular date.
CREATE FUNCTION dbo.FindAge
(
@Dob DATETIME,
@ToDate DATETIME
)
RETURNS INT
AS
BEGIN
RETURN ROUND((CASE
WHEN @dob > @ToDate
THEN NULL
WHEN DATEPART(day, @dob) > DATEPART(day, @ToDate)
THEN DATEDIFF(month, @dob, @ToDate) - 1
ELSE DATEDIFF(month, @dob, @ToDate)
END / 12), 0);
END;
Please refer why you should not use DATEDIFF function directly and use above logic.
Cheers!
Uma