假设我有 2 个时间戳字段/列,event
和 stamp
.对于event
字段,当我们插入时,我想设置时区,以便事件将使用用户指定的时区。但是,我不希望stamp
使用该时区。我希望stamp
使用服务器正在使用的任何默认时区。
SET time_zone = <UTC offset>;
不起作用,因为它会影响我们只希望event
受时区影响的event
和stamp
。
有没有办法在插入过程中为特定列设置时区?
当您插入日期时,MySQL不会为时区而烦恼。
我建议以GMT(+00:00)存储日期/时间,并有另一个字段来存储所使用的时区(例如"欧洲/阿姆斯特丹")。
编辑
我不完全确定您是否需要使用的时区,因为您可以在脚本/应用程序中以您想要的任何方式格式化 GMT 时间。
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