• Add 1 to the DATEDIFF() unless the dates are equivalent.

    SELECT DATEDIFF(YEAR, date1, date2) + CASE WHEN CONVERT(CHAR(5), date1, 1) = CONVERT(CHAR(5), date2, 1) THEN 0 ELSE 1 END

    You have to decide if/how you want to handle Feb 28 vs Feb 29.

    For example:

    + CASE WHEN CONVERT(CHAR(5), DATEADD(DAY, 1, date1), 1) = CONVERT(CHAR(5), DATEADD(DAY, 1, date2), 1) THEN 0 ELSE 1 END

    would consider Feb 28 and Feb 29 as the "same day" for your calculation purposes.

    Scott Pletcher, SQL Server MVP 2008-2010