Pergunta

Quando eu uso esta consulta:

SELECT COUNT(*) FROM `my_table` WHERE DATEDIFF(NOW(), updated) > 2

O MySQL executa a consulta sem erros e eu recebo a contagem de linhas que não foram atualizadas nos últimos 2 dias. No entanto, se eu mudar a consulta como esta:

SELECT * FROM `my_table` WHERE DATEDIFF(NOW(), updated) > 2

Estou tendo o erro a seguir:

#1305 - FUNCTION mydatabase.DATEDIFF does not exist

Alguma idéia de por que é assim?

Foi útil?

Solução

Eu tive um problema semelhante em que não funcionaria em seleção se eu não tivesse definido o limite.

Tente fazer algo como:

SELECT * FROM `my_table` WHERE DATEDIFF(NOW(), updated) > 2 LIMIT 0, 10

Ele foi corrigido em uma atualização do MySQL. Tente atualizar sua versão MySQL também.

Outras dicas

Verifique se você não tem espaço entre DATEDIFF e o suporte (.

Possivelmente você também pode tentar SET sql_mode = "IGNORE_SPACE";

Verifique também isso relatório de erro.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top