我有以下SQL:
FROM_UNIXTIME(1392354000)
当我在insert语句中将其插入数据库时,保存的值为:
2014-02-13 19:00:00
然而,这是不正确的,因为它应该是这样的:
2014-02-14 00:00:00
如果您将时间戳复制并粘贴到http://www.unixtimestamp.com/index.php,则会显示2月14日。
如何才能使我的时间戳成为2月14日(不是第13位)?优选地,它将如上所示(2014-02-14 00:00:00
)。
答案 0 :(得分:1)
这种情况正在发生,因为您的mysql的时区与您正在测试的URL不同。
在URL中,时区为UTC。
所以要测试一下,你可以试试这个
首先使用以下命令检查为mysql服务器设置的时区
SELECT @@global.time_zone;
这将显示时区结果,如果设置为UTC,您将获得
+--------------------+
| @@global.time_zone |
+--------------------+
| +00:00 |
+--------------------+
否则你会得到一些其他结果。
现在,如果它更像你提到的其他东西
试试这个
SET @@global.time_zone='+00:00';
现在您的mysql服务器正在使用UTC时区,然后运行命令
mysql> select FROM_UNIXTIME(1392354000) ;
+---------------------------+
| FROM_UNIXTIME(1392354000) |
+---------------------------+
| 2014-02-14 10:30:00 |
+---------------------------+
以下几种方法可以更改mysql服务器的时区
http://www.inmotionhosting.com/support/website/databases/how-to-change-mysql-server-time-zone