将字符串长日期转换为 MySQL 中的日期时间

Convert String long date to datetime in MySQL

我从 table 中得到这个值 'Mon Oct 26 16:34:23 CST 2015' 作为字符串。

我想使用 str_to_date() 将此字符串转换为下一个 datetime'2015-10-26 16:34:23',如下所示:

select str_to_date('Mon Oct 26 16:34:23 CST 2015','%a %b %d %H:%i:%s %Y') val;

但它 returns 我一个 null 值,如果我删除 '%Y',我得到下一个:'0000-10-26 16:34:23'.

如何从字符串中跳过 'CST' 以获得年份值?

使用replace是立竿见影的办法,但我不能丢弃其他时区格式。

提前,谢谢。

您可以在格式字符串中包含时区本身。所以,这有效:

select str_to_date('Mon Oct 26 16:34:23 CST 2015','%a %b %d %H:%i:%s CST %Y') val;

当然,如果您的字符串有其他时区,这将不起作用。