STR_TO_DATE带有时区

问题描述 投票:0回答:1

我的MySQL(版本5.7.25)数据库有一个列,其中充满了varchar(100)日期,如Fri May 04 08:08:42 UTC 2018。我需要将它们转换为日期。

到目前为止,我想出了

SELECT STR_TO_DATE('Fri May 04 08:08:42 UTC 2018', '%a %b %d %T %Y') AS to_date

但由于时区,它返回null。但如果我尝试:

SELECT STR_TO_DATE('Fri May 04 08:08:42 2018', '%a %b %d %T %Y') AS to_date

......它完美无缺。那么有没有办法在日期格式中添加时区?

mysql datetime timezone str-to-date
1个回答
1
投票

如果字符串始终包含UTC,那么您可以对其进行硬编码:

SELECT STR_TO_DATE('Fri May 04 08:08:42 UTC 2018', '%a %b %d %T UTC %Y') AS to_date
-- 2018-05-04 08:08:42

如果你想转换时区信息,你需要使用CONVERT_TZ函数:

SELECT CONVERT_TZ(STR_TO_DATE('Fri May 04 08:08:42 UTC 2018', '%a %b %d %T UTC %Y'), '+00:00', 'system')
-- 2018-05-04 13:08:42
-- actual result depends on system timezone
© www.soinside.com 2019 - 2024. All rights reserved.