-1

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

直到现在我想出了

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

但问题是 TZ offset -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

4

1 回答 1

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;

这就是我所说的答案。

于 2012-11-26T19:35:36.543 回答