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;