Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Converter string com formato diferente para data


Há um truque para detectar uma data válida no página de manual . Você pode usá-lo para determinar se um STR_TO_DATE formato funcionou.
select foo,
    case when length(date(str_to_date(foo,"%Y-%m-%d %H:%i:%S"))) is not null then str_to_date(foo,"%Y-%m-%d %H:%i:%S")
        when length(date(str_to_date(foo,"%b %d %Y %h:%i%p"))) is not null then str_to_date(foo,"%b %d %Y %h:%i%p")
    end as newdate
from my_table

Coloque um formato para todos que você espera. Teste como um louco.

Boa sorte.

(Ah, e parabéns por tentar limpar um esquema ruim!)