Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Porque esse código não funciona?

select nome, DATEDIFF(year, current_timestamp , data_de_nascimento) as idade from tabela_de_clientes;

2 respostas

Olá João, Bom dia Tenta alterar a ordem dos componentes

DATEDIFF ( datepart , startdate , enddate )
SELECT NOME, DATEDIFF(year,data_de_nascimento, current_timestamp ) as IDADE FROM TABELA_DE_CLIENTES;

solução!

Olá João, tudo bem? Bem, se executar essa query no MySQL ele deve nos retornar o seguinte erro:

Error Code: 1582. Incorrect parameter count in the call to native function 'DATEDIFF'

Isso significa que os parâmetros estão incorretos na chamada da função, e isso é porque essa função DATEDIFF como a própria documentação do MySQL fala "retorna expressão1 - expressão2 expresso como um valor em dias de uma data para a outra. Se expressão1 e ou expressão2 são expressões de data ou data e hora. Somente as partes da data dos valores são usadas no cálculo", portanto não podemos utilizá-la dessa forma. Para isso temos que usar a função TIMESTAMPDIFF que vai nos retornar um valor de tempo, seja de hora ou data e hora.

Espero ter esclarecido sua dúvida!