时间戳使用特定时区?

时间:2014-03-28 04:12:50

标签: mysql phpmyadmin

以下是我的表定义,它自动将时间戳值插入每条记录中。我想要做的就是让时间戳使用特定的时区,例如在我的情况下,我希望它使用不列颠哥伦比亚省的当前时间我该怎么做?

因为当我在表中插入数据时,我并没有真正从我的php脚本传递timestame值,但它采用默认值。

CREATE TABLE `cfv_postbusupdate` (
  `BusNumber` int(11) NOT NULL,
  `Direction` varchar(100) DEFAULT 'Not Provided',
  `StopNames` varchar(300) DEFAULT 'Not Provided',
  `Status` varchar(45) DEFAULT 'Not Provided',
  `comments` varchar(150) DEFAULT 'None',
  `username` varchar(45) DEFAULT 'anonymous_user',
  `dayofweek` varchar(45) DEFAULT NULL,
  `time` varchar(20) DEFAULT NULL,
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `DatePosted` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

2 个答案:

答案 0 :(得分:0)

时间戳存储为检索时转换为应用程序使用的时区的UTC值。如果您希望不列颠哥伦比亚省时间设置SET time_zone = 'america/vancouver';

的时区

手动参考是here

答案 1 :(得分:0)

使用此内容:请参阅此链接:https://stackoverflow.com/a/6158432/3242978

-- Make sure we're all working off of the same local time zone
test=> SET timezone = 'America/Los_Angeles';
SET
test=> SELECT NOW();
              now              
-------------------------------
 2011-05-27 15:47:58.138995-07
(1 row)

test=> SELECT NOW() AT TIME ZONE 'UTC';
          timezone          
----------------------------
 2011-05-27 22:48:02.235541
(1 row)

更新:1

根据MySQL docs,当#1193使用错误的代码时,会出现错误SQLSTATE

Message: Unknown system variable %s

而且,正如您在same page上看到的那样,SQLSTATE 99003未定义。