Hãy thử điều này ...
SELECT CASE WHEN
(DATEADD(year,DATEDIFF(year, @datestart ,@dateend) , @datestart) > @dateend)
THEN DATEDIFF(year, @datestart ,@dateend) -1
ELSE DATEDIFF(year, @datestart ,@dateend)
END
Nó chỉ so sánh sự khác biệt của năm và nếu nó lớn hơn thì trừ đi một năm, nếu không nó sẽ trả về giá trị.