3

假设我有 2 个 TIMESTAMP 字段/列,event并且stamp. 对于event字段,当我们插入时,我想设置时区,以便该事件将使用用户指定的时区。但是,我不想stamp使用那个时区。我想stamp使用服务器使用的任何默认时区。

SET time_zone = <UTC offset>;

不起作用,因为它会影响两者event以及stamp我们只想event受时区影响的地方。

有没有办法在插入期间为特定列设置时区?

4

2 回答 2

1

插入日期时,MySQL 不会担心时区。

我建议将日期/时间存储在 GMT (+00:00) 中,并使用另一个字段来存储使用的时区(例如“欧洲/阿姆斯特丹”)。

编辑

不过,我不完全确定您是否需要使用的时区,因为您可以在脚本/应用程序中以任何您喜欢的方式格式化 GMT 时间。

于 2012-05-14T04:31:58.307 回答
0
SET time_zone = <user timezone>;    
INSERT ... SET event = CURRENT_TIMESTAMP(), stamp = UTC_TIMESTAMP(), ...

或在http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html阅读更多内容

于 2012-05-14T04:38:04.620 回答