Oi, Ana! Como está?
O erro que você está enfrentando ocorre porque a função DATEDIFF
retorna um valor INT
e você está tentando concatená-lo diretamente com uma string
. Neste caso, o SQL Server tentou converter toda a expressão para um INT
, em vez de fazer o inverso!
Para resolver este problema, podemos converter explicitamente o valor de @IDADE
para uma string
antes de realizar a concatenação, deste modo:
DECLARE @CPF VARCHAR(15);
DECLARE @DATA_NASCIMENTO DATE;
DECLARE @IDADE INT;
SET @CPF = '1471156710';
SELECT @DATA_NASCIMENTO = [DATA DE NASCIMENTO] FROM [TABELA DE CLIENTES] WHERE CPF = @CPF;
PRINT 'A idade do cliente, cujo CPF é ' + @CPF + ' é ' + CAST(DATEDIFF(YEAR, @DATA_NASCIMENTO, GETDATE()) AS VARCHAR(10));
Note que, na última linha, adicionei CAST(... AS VARCHAR(10))
em torno da função DATEDIFF
para garantir que seu valor seja tratado como uma string
ao ser concatenado com o restante da mensagem!
Caso queira saber um pouco mais sobre o CAST
, recomendo a leitura do material abaixo:
Espero ter ajudado, Ana! Qualquer dúvida, estarei por aqui.
Um abraço!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!