Inconsistente MySQL Datdiff Comportamento
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?
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