【问题标题】:Inserting a date in RFC2822 format - no timezone specifier?以 RFC2822 格式插入日期 - 没有时区说明符?
【发布时间】:2012-11-14 06:52:52
【问题描述】:

我有一个 RFC2822 格式的字符串,我想在 UTC 时间插入适当的时间戳。

直到现在我都想出了

DATE_FORMAT(?, "%a, %d %b %Y %T -0700")

但问题是 TZ 偏移量-0700,似乎没有格式说明符。

如何在数据库中正确插入这样的时间戳?

我想避免在应用程序端进行处理。

更新

SELECT CONVERT_TZ(STR_TO_DATE(SUBSTRING('Mon, 15 Aug 2005 15:52:01 +0200',1,25), '%a, %d %b %Y %T'),CONCAT(SUBSTRING('Mon, 15 Aug 2005 15:52:01 +0200',27,3), ':', SUBSTRING('Mon, 15 Aug 2005 15:52:01 +0200',30,2)),'+00:00') AS conv;

如何通过使用变量而不是重复字符串Mon, 15 Aug 2005 15:52:01 +0200来“干净”地做到这一点?

【问题讨论】:

标签: mysql time timezone convert-tz timestamp-with-timezone


【解决方案1】:
SET @a:='Mon, 15 Aug 2005 15:52:01 +0200';
SELECT
  CONVERT_TZ(
    STR_TO_DATE(SUBSTRING(@a,1,25), '%a, %d %b %Y %T'),
    CONCAT(SUBSTRING(@a,27,3), ':', SUBSTRING(@a,30,2)),
    '+00:00'
  )
AS conv;

这就是我所说的答案。

【讨论】:

    猜你喜欢
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-15
    • 2013-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多