Mysql 带时区的STR_至_日期

Mysql 带时区的STR_至_日期,mysql,datetime,timezone,str-to-date,Mysql,Datetime,Timezone,Str To Date,我的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

我的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

。。。它工作得很好。有没有办法将时区添加到日期格式中?

如果字符串始终包含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
如果您还想转换时区信息,则需要使用以下功能:

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

是否要在另存为日期时间之前转换时区?