【问题标题】:STR_TO_DATE with timezoneSTR_TO_DATE 与时区
【发布时间】:2019-09-19 01:57:09
【问题描述】:

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

如果字符串始终包含 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

【讨论】:

    猜你喜欢
    • 2018-04-09
    • 2020-03-26
    • 2015-06-02
    • 2017-09-28
    • 2020-08-03
    • 2019-07-18
    • 2017-02-06
    • 2014-11-24
    • 1970-01-01
    相关资源
    最近更新 更多