Mysql时间戳数据类型

时间:2012-11-01 21:37:01

标签: mysql timestamp

我对时间戳数据类型有一些疑问。 我是否正确地说明了如果我使用时间戳它将以UTC格式存储日期时间? 当我检索数据时,它将在当地时间显示?

如果是这样,我是否有任何配置来启用此“功能”?

3 个答案:

答案 0 :(得分:0)

时间戳在转出时转换为日期和时间的字符串表示。它将使用MySQL服务器的时区设置来显示结果集中的内容。

自EPOCH('1970-01-01 00:00:00'UTC)以来,时间戳内部存储为秒数;

这就是为什么许多人喜欢将他们的数据库设置为UTC - 这样他们总是得到一个UTC日期时间,并且可以在代码端转换为当地时间。

MySQL数据库的时区将使用内部配置设置,这可能会回退到服务器的系统设置。

请参阅有关如何配置MySQL时区设置的信息:http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html

答案 1 :(得分:0)

默认情况下,TIMESTAMP以UTC格式存储其数据,然后将其转换回数据库所在的SERVER的时区。这里对类似问题有几个很好的回答:Should I use field 'datetime' or 'timestamp'?

答案 2 :(得分:0)

一切都在手册中。

MySQL converts TIMESTAMP values from the current time zone to UTC for storage, and back from UTC to the current time zone for retrieval. (This does not occur for other types such as DATETIME.)

要将时间值明确地转换为特定时区,请使用convert_tz()

current time zone是会话的一部分 - 它继承自MySQL全局时区,该时区继承自系统时区。