数据库
首页 > 数据库> > mysql – 将具有不同格式的字符串转换为日期

mysql – 将具有不同格式的字符串转换为日期

作者:互联网

我有一个包含字符串列(varchar(200))的表,其中包含不同格式的日期.例如

may 24 1983 12:00AM
1981-01-13 00:00:00
1979-01-13 00:00:00:123

我想在日期中转换此列以提取年份.我怎么办?我使用过STR_TO_DATE但效果不佳.我必须为每种不同的格式使用SUBSTRING吗?

MySQL版本5.0.95

解决方法:

有一个技巧可以检测man page上的有效日期.您可以使用它来确定STR_TO_DATE格式是否有效.

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

为您期待的每个人提供一种格式.像疯了一样测试.

祝好运.

(哦,恭喜你试图清理一个糟糕的架构!)

标签:date-conversion,sql,mysql
来源: https://codeday.me/bug/20190901/1785285.html