you need to improve your query.
change your return statement like returns [datatype]
i changed it
create function Age(@date datetime)
returns datetime
as
begin
DECLARE @tmpdate datetime, @years int, @months int, @days int, @age varchar(12)
SELECT @tmpdate = @date
SELECT @years = DATEDIFF(yy, @tmpdate, GETDATE()) -
CASE WHEN (MONTH(@date) > MONTH(GETDATE())) OR (MONTH(@date) = MONTH(GETDATE()) AND DAY(@date) > DAY(GETDATE())) THEN 1 ELSE 0 END
SELECT @tmpdate = DATEADD(yy, @years, @tmpdate)
SELECT @months = DATEDIFF(m, @tmpdate, GETDATE()) -
CASE WHEN DAY(@date) > DAY(GETDATE()) THEN 1 ELSE 0 END
SELECT @tmpdate = DATEADD(m, @months, @tmpdate)
SELECT @days = DATEDIFF(d, @tmpdate, GETDATE())
set @age= Convert(varchar(12),(cast (@years as varchar(2)) + '-'+ cast(@months as varchar(2))+'-'+ cast(@days as varchar(4))),11)
return @age
end