declare @dob datetime, @age int, @day datetimeset @day = '2008-12-15'set @dob = '2007-02-28'set @age = datediff(yy,@dob,@day) - case when @day < dateadd(yy, datediff(yy,@dob,@day), @dob) then 1 else 0 endselect case when @day < dateadd(mm, 1, @dob) then cast(datediff(dd, @dob, @day) as varchar) + 'd' when @day < dateadd(mm, 3, @dob) then cast(datediff(wk, @dob, @day) as varchar) + 'w' when @day <= dateadd(yy, 1, @dob) then cast(datediff(mm, @dob, @day) as varchar) + 'm' else cast(datediff(yy,@dob,@day) - case when @day < dateadd(yy, datediff(yy,@dob,@day), @dob) then 1 else 0 end as varchar) + 'y' end