在我的MySQL (版本5.7.25)数据库中有一个列,其中充满了像Fri May 04 08:08:42 UTC 2018这样的varchar(100)日期。我需要将它们转换为日期。
到目前为止,我已经想出了
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..。它工作得很完美。那么,有没有办法将时区添加到日期格式中呢?
发布于 2019-04-30 20:18:22
如果字符串始终包含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 timezonehttps://stackoverflow.com/questions/55920357
复制相似问题