为什么SQL时间戳不是UTC?

时间:2015-01-24 18:37:55

标签: php mysql sql timestamp

我从SQL中选择当前日期:

foreach ($dbh->query('SELECT CURRENT_TIMESTAMP as `now`;') as $row) {
  echo $row['now'];
}

,输出为:2015-01-24 12:46:45。这是我的计算机上的时间,位于GMT-0500 (EST)。但是,我认为SQL时间戳应该总是在UTC中?为什么这个时间戳不是UTC?

1 个答案:

答案 0 :(得分:1)

没有规则说它必须是UTC,相反请参阅文档(强调我的):

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_current-timestamp

  

将当前时间作为'HH:MM:SS'或HHMMSS.uuuuuu中的值返回   格式,取决于函数是用于字符串还是   数字上下文。 该值以当前时区表示。

有一个UTC_TIMESTAMP()函数来获取UTC时间戳,你也可以使用UNIX_TIMESTAMP()函数(但这会给你一个不同的数据类型)。