MySQL – Como ordenar consulta de datas em colunar do tipo varchar no MySQL

Fernando Valler 05/04/2020 MySQL


Caso já tenha dado manutenção em alguns sistemas antigos, provavelmente tenha encontrado tabelas com coluna de data mas que estão como tipo varchar. O problema é quando você precisar ordenar os dados dessa tabela por essa coluna e percebe que a ordenação não sai como esperado.

Uma saída para esse problema seria a conversão da coluna do tipo varchar para o tipo date. Nesse exemplo a coluna da tabela que estava guardado a informação da data era do tipo varchar e no padrão brasileiro, para fazer a ordenação correta pela data  apliquei a seguinte query:

SELECT str_to_date(data, '%d/%m/%Y') AS data FROM contas ORDER BY data;

Veja que para a função do MySQL str_to_date no segundo parâmetro vamos informar o padrão em que a data já foi armazenada na tabela (nesse exemplo era DD/MM/AAAA). A saída será a data no padrão do MySQL (AAAA-MM-DD).


Fernando Valler - Programador Web
Fernando Valler

Sou programador web, motivado por desafios e sempre buscando aprender algo novo. Aqui você pode encontrar alguns projetos.