Как рассчитать возраст в T-SQL с годами, месяцами и днями

Попробуйте это ...

SELECT CASE WHEN
 (DATEADD(year,DATEDIFF(year, @datestart  ,@dateend) , @datestart) > @dateend)
THEN DATEDIFF(year, @datestart  ,@dateend) -1
ELSE DATEDIFF(year, @datestart  ,@dateend)
END

По сути, DateDiff transact-sql (год ...) дает вам возраст, которому datediff исполнится человек в этом tsql году, поэтому я просто добавил tsql оператор case, чтобы сказать, если datediff у него еще не было дня рождения tsql в этом году, вычтите 1 год, иначе tsql вернуть значение.

tsql

datediff

2022-11-21T20:52:08+00:00