CREATE FUNCTION Age (
@argBirthday SMALLDATETIME
,@argAsOf SMALLDATETIME
)
RETURNS INTEGER
AS
BEGIN
RETURN (
SELECT DATEDIFF(yy, @argBirthday, @argAsOf) +
CASE
WHEN (MONTH(@argBirthday) < MONTH (@argAsOf))
OR ((MONTH(@argBirthday) = MONTH(@argAsOf)
AND DAY(@argBirthday) <= DAY(@argAsOf)))
THEN 0
ELSE -1
END
)
END
SELECT dbo.Age('19620707', GETDATE()) AS MyAge