2012-11-26 91 views
-1

我有一个字符串RFC2822格式,我想插入适当的UTC时间的时间戳。以RFC2822格式插入日期 - 没有时区说明符?

到现在为止我已经拿出

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做 “干净”?

+0

[STR \ _TO \ _DATE解析在mysql中]的可能重复(http://stackoverflow.com/questions/3039700/str-to-date-parsing-in-mysql)。 –

回答

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; 

这就是我所说的答案。