Vander,
Não dá para calcular somente com o DATDIFF.
Abaixo, o link explica o procedimento correto:
===============================================================
Como calcular a diferença entre duas datas no SQL Server
28 De Setembro De 2021 - Adão Gonçalves
Como calcular a diferença entre duas datas usando Transact-SQL, considerando o mês e o dia das datas envolvidas?
Usando o DATEDIFF a variação de dias é desconsiderada:
 E o DATEDIFF também não considera o mês para fazer a diferença:
E o DATEDIFF também não considera o mês para fazer a diferença:
 Somente com o DATEDIFF, portanto, não conseguimos resolver. Esta faz uma subtração dos valores absolutas dos anos das datas, logo, não resolve nosso problema.
Somente com o DATEDIFF, portanto, não conseguimos resolver. Esta faz uma subtração dos valores absolutas dos anos das datas, logo, não resolve nosso problema.
Demonstro, a seguir, duas soluções:
Na primeira calculo a diferença em anos entre duas datas (idade) considerando, é claro, o dia do “aniversário” da data comparada.
- Na segunda calculo e apresento esta diferença em anos, meses e dias destas duas datas.
IF (OBJECT_ID('dbo.Fc_Calcula_Idade') IS NOT NULL) DROP FUNCTION dbo.Fc_Calcula_Idade
GO
/****************************************
* Fc_Calcula_Idade: Função para calculo de Idade ou quantidade de anos entre duas datas
****************************************/
CREATE FUNCTION [dbo].[Fc_Calcula_Idade] (@dt_Inicio date, @Dt_Fim date)
RETURNS INT
    AS BEGIN
      RETURN DATEDIFF(YEAR, @dt_Inicio, @Dt_Fim) 
        + CASE 
            WHEN (MONTH(@dt_Inicio) > MONTH(@Dt_Fim) OR (MONTH(@dt_Inicio) = MONTH(@Dt_Fim) AND DAY(@dt_Inicio) > DAY(@Dt_Fim))) THEN -1 ELSE 0 END
    END
Calculando a diferença entre duas datas em anos, mês e dia
Vamos complicar um pouquinho!
IF (OBJECT_ID('dbo.Fc_Calcula_Idade_Completa') IS NOT NULL) DROP FUNCTION dbo.Fc_Calcula_Idade_Completa
GO
/************************************************************
* [Fc_Calcula_Idade_Completa]: Função para calculo de Idade ou quantidade de anos entre duas datas
************************************************************/
CREATE FUNCTION [dbo].[Fc_Calcula_Idade_Completa] (@dt_Inicio date, @dt_Fim date)
RETURNS VARCHAR(50)
AS BEGIN
    DECLARE 
        @dt_Ultimo_Aniversario date, 
        @int_Ano_Ultimo_Aniversario INT,
        @int_Qtd_Anos INT = 0,
        @int_Qtd_Meses INT = 0,
        @int_Qtd_Dias INT = 0,
        @dt_Ultimo_Mesversario date, 
        @str_Idade varchar(50);
    SET @int_Ano_Ultimo_Aniversario = YEAR(@Dt_Fim) + 
        CASE WHEN (MONTH(@dt_Inicio) > MONTH(@Dt_Fim) 
                    OR (MONTH(@dt_Inicio) = MONTH(@Dt_Fim) AND DAY(@dt_Inicio) > DAY(@Dt_Fim))
                ) THEN -1 ELSE 0 END;
    SET @dt_Ultimo_Aniversario = CONVERT(DATE, CAST( IIF(MONTH(@dt_Inicio)=2 and DAY(@dt_Inicio)>28,28,DAY(@dt_Inicio)) AS VARCHAR)+'/'+CAST(MONTH(@dt_Inicio) AS VARCHAR)+'/'+CAST(@int_Ano_Ultimo_Aniversario as varchar) , 103)
    SELECT 
        @int_Qtd_Anos = DATEDIFF(YEAR, @dt_Inicio, @Dt_Fim) + 
            CASE 
                WHEN (MONTH(@dt_Inicio) > MONTH(@Dt_Fim) 
                        OR (MONTH(@dt_Inicio) = MONTH(@Dt_Fim) AND DAY(@dt_Inicio) > DAY(@Dt_Fim))
                    ) THEN -1 ELSE 0 END,
        @int_Qtd_Meses = DATEDIFF(MONTH, @dt_Ultimo_Aniversario, @Dt_Fim) + 
            CASE 
                WHEN (MONTH(@dt_Ultimo_Aniversario) > MONTH(@Dt_Fim) 
                        OR (MONTH(@dt_Inicio) = MONTH(@Dt_Fim) AND DAY(@dt_Inicio) > DAY(@Dt_Fim))
                        OR (MONTH(@dt_Inicio) < MONTH(@Dt_Fim) AND DAY(@dt_Inicio) > DAY(@Dt_Fim))
                    ) THEN -1 ELSE 0 END
    SET @dt_Ultimo_Mesversario = DATEADD(MONTH, @int_Qtd_Meses, DATEADD(YEAR, @int_Qtd_Anos, @dt_Inicio) )
    SET @int_Qtd_Dias = DATEDIFF(DAY, @dt_Ultimo_Mesversario, @Dt_Fim) 
    SET @str_Idade = CASE 
                        WHEN @int_Qtd_Anos=1 THEN CAST(@int_Qtd_Anos as varchar)+' ano' + IIF(@int_Qtd_Dias=0 and @int_Qtd_Meses>0,' e ',', ')
                        WHEN @int_Qtd_Anos>1 THEN CAST(@int_Qtd_Anos as varchar)+' anos' + IIF(@int_Qtd_Dias=0 and @int_Qtd_Meses>0,' e ',', ')
                        ELSE '' END
    SET @str_Idade = @str_Idade + CASE 
                        WHEN @int_Qtd_Meses=1 THEN CAST(@int_Qtd_Meses as varchar)+' mês' + IIF(@int_Qtd_Dias>0,' e ','')
                        WHEN @int_Qtd_Meses>1 THEN CAST(@int_Qtd_Meses as varchar)+' meses' + IIF(@int_Qtd_Dias>0,' e ','')
                        ELSE '' END
    SET @str_Idade = @str_Idade + CASE 
                        WHEN @int_Qtd_Dias=1 THEN CAST(@int_Qtd_Dias as varchar)+' dia' 
                        WHEN @int_Qtd_Dias>1 THEN CAST(@int_Qtd_Dias as varchar)+' dias' 
                        ELSE '' END
    RETURN @str_Idade
END
Para calcular e apresentar anos, mês e dia resolvi da seguinte forma:
...
https://www.adao.eti.br/blog/como-calcular-a-diferenca-entre-duas-datas-no-sql-server/
===============================================================
[]'s,
Fabio I.