Solução:  DECLARE @s DATE, @e DATE  SELECT @s = '20100101', @e = '20121021';  SELECT y + ' year(s), ' + m + ' month(s) and ' + d + ' day(s).' FROM (   SELECT      RTRIM(y),      RTRIM(m - CASE WHEN pd < 0 THEN 1 ELSE 0 END),     RTRIM(CASE WHEN pd < 0 THEN nd ELSE pd END)   FROM    (     SELECT       DATEDIFF(MONTH, @s, @e) / 12,        DATEDIFF(MONTH, @s, @e) % 12,       DATEDIFF(DAY, @s, DATEADD(MONTH, -DATEDIFF(MONTH, @s, @e), @e)),       DATEDIFF(DAY, @s, DATEADD(MONTH, 1-DATEDIFF(MONTH, @s, @e), @e))   ) AS x (y, m, pd, nd) ) AS y (y, m, d);