2014-05-21 36 views
0

我想插入RCF2822格式的时间戳,例如Tue, 31 Dec 2013 23:00:00 +0000。你推荐什么数据类型?RCF2822格式的日期时间是否有数据类型?

我需要有RCF2822格式的日期时间,因为我需要它生成的时区,以便它也可以在多年之间进行转换。

在可替代的,我可以插入格式的ISO 8601日期时间,例如2008-04-16T11:43:32+02:00

+0

什么是* RCF2822 *格式? –

+0

@juergend:我确定日期时间定义为http://tools.ietf.org/html/rfc2822#section-3.3 – VMai

+0

我建议两列:a)'DATETIME'或'TIMESTAMP'作为UTC以获得按时间顺序排列顺序和b)具有相同数据类型(首选)的本地时间或作为TIME的偏移量。 – VMai

回答

0

你应该让数据库决定如何储存。 MySQL日期时间stores data in UTC内部。你可以尝试,包括在一个单独的列的时区,并使用Convert_Tz如下:

select convert_tz(datetimecolumn, timezonecolumn, 'Europe/Bucharest'); 

时区列表可以使用mysql_tzinfo_to_sql如下装载到MySQL:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql 

希望有所帮助。

+0

'TIMESTAMP'在存储之前转换为UTC,而不是'DATETIME',请参阅手册(您的链接):_MySQL将TIMESTAMP值从当前时区转换为UTC存储,并从UTC转回当前时区以供检索。 (对于其他类型,例如DATETIME,这不会发生。)_ – VMai

相关问题