以RFC2822格式插入日期 - 没有时区说明符?

时间:2012-11-26 18:27:05

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

我有一个 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来“干净地”执行此操作?

1 个答案:

答案 0 :(得分:0)

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;

这就是我所说的答案。