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