Essayez ceci...
SELECT CASE WHEN
(DATEADD(year,DATEDIFF(year, @datestart ,@dateend) , @datestart) > @dateend)
THEN DATEDIFF(year, @datestart ,@dateend) -1
ELSE DATEDIFF(year, @datestart ,@dateend)
END
Il compare simplement la différence d'année et s'il est supérieur, il soustrait une année, sinon il renvoie la valeur.