Если вы можете использовать конкатенацию строк, это даст вам количество лет:
DATEDIFF(yy, t.startdate, t.enddate)
Это даст вам месяцы:
DATEDIFF(mm,
DATEADD(yy,
DATEDIFF(yy,
t.startdate,
t.enddate),
t.startdate),
t.enddate)
И это даст вамдни:
DATEDIFF(dd,
DATEADD(mm,
DATEDIFF(mm,
DATEADD(yy,
DATEDIFF(yy,
t.startdate,
t.enddate),
t.startdate),
t.enddate),
DATEADD(yy,
DATEDIFF(yy,
t.startdate,
t.enddate),
t.startdate)),
t.enddate)
Вы можете просмотреть и протестировать, используя этот сохраненный запрос Я отправил в StackExchange Data Explorer .Он использует Azure, с использованием TSQL ...