我从一个表中以字符串的形式获得这个值'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;
但它会返回一个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;
当然,如果字符串有其他时区,这是不起作用的。