Você quer o
STR_TO_DATE()
função para converter sua coluna varchar existente em um valor de data. Eu definitivamente recomendo criar uma nova coluna e usar
STR_TO_DATE()
para copiar o valor de sua coluna existente para a nova coluna, em vez de usar STR_TO_DATE()
diretamente no ORDER BY
do seu SELECT
. UPDATE archive SET newdate = STR_TO_DATE(crapdate,'%b-%e-%Y');
Se você não puder alterar a estrutura da tabela, poderá classificar a coluna existente assim:
SELECT * FROM archive ORDER BY STR_TO_DATE(crapdate,'%b-%e-%Y') DESC;