Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Bug ao ordenar com campo datetime

Eu estava desenvolvendo um sistema simples onde em uma parte eu tinha a listagem de logs. Para salvá-los eu criei uma tabela onde tinha o campo id(chave primária), algumas informações e um campo para salvar a data e hora daquele registro. Na listagem eu precisei ordená-los, então optei por usar a query com o comando ORDER BY data DESC para que sejam listados os registros do mais recente para o mais antigo. Fiz isso era dia 28/11 e funcionou tranquilamente. Aí dia 01/12 fui olhar a lista novamente, e ela estava com a ordem completamente invertida, por exemplo os os registros cadastrados dia 29/11 estavam aparecendo por primeiro(como se fossem os mais recentes) e os que fiz no dia 01/12 estavam no final(como se eu fossem salvos por primeiro). A impressão que eu tive foi que ele considerou o dia 01/12 como se fosse do mês de novembro(11), parece que ele ainda não tinha virado o mês. Aí a solução para isso foi que eu coloquei para ordenar pelo campo id com o comando ORDER BY id DESC, que deu certo, ele mostrava do maior(mais recente) para o menor (mais antigo). Aí hoje dia 05/12 resolvi voltar para a ordenação por data, e por incrível que pareça ele voltou a funcionar do jeito certo. Alguém sabe me explicar o por que isso aconteceu e uma solução?

1 resposta
solução!

Talvez não seja esse o problema específico, mas não é uma boa prática usar palavras reservadas do SQL como nome de campo. DATA é uma delas. Normalmente aparece um erro de sintaxe, mas em alguns casos, pode ter sentido na expressão e apresentar um resultado inesperado. Veja as palavras reservadas do MySQL em: https://dev.mysql.com/doc/refman/8.0/en/keywords.html