SQL FROM_UNIXTIME不正确

时间:2014-06-22 18:35:40

标签: mysql sql timestamp unix-timestamp

我有以下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)。

1 个答案:

答案 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