当前位置:Gxlcms > PHP教程 > mysql里面int类型时间字段为什么相差8小时的问题

mysql里面int类型时间字段为什么相差8小时的问题

时间:2021-07-01 10:21:17 帮助过:15人阅读

我在供应商的客户端软件查看各条记录的时间都是正常的,但我直接在后台使用SQLyog查阅,发现自己查询出来的时间字段总是慢了8小时,请问是什么问题呢?

我使用以下语句,出来格式是 2013-05-25th 01:37:08,其实该条记录正确的时间是 2013-05-25th 09:37:08


SELECT DATE_FORMAT(FROM_UNIXTIME(`table`.`time`),'%Y-%m-%D %h:%i:%s') AS `theTime` FROM table


回复讨论(解决方案)

与你服务器的时区设置有关

但供应商的客户端软件看是没有问题的。

如果确实没有办法,在mysql里面怎么把当前时间 加上 8小时,然后再把 int类型的时间字段以 2013-05-25th 01:37:08 的格式展示出来。

MySQL服务器有几个时区设置:

· 系统时区。服务器启动时便试图确定主机的时区,用它来设置system_time_zone系统变量。

· 服务器当前的时区。全局系统变量time_zone表示服务器当前使用的时区。初使值为'SYSTEM',说明服务器时区与系统时区相同。可以用--default-time-zone=timez选项显式指定初使值。如果你有SUPER 权限,可以用下面的语句在运行时设置全局变量值:

· mysql> SET GLOBAL time_zone = timezone;
· 每个连接的时区。每个客户端连接有自己的时区设置,用会话time_zone变量给出。其初使值与全局变量time_zone相同,但可以用下面的语句重设:

· mysql> SET time_zone = timezone;
可以用下面的方法查询当前的全局变量值和每个连接的时区:

mysql> SELECT @@global.time_zone, @@session.time_zone;
timezone值为字符串,表示UTC的偏移量,例如'+10:00'或'-6:00'。如果已经创建并装入mysql数据库中的时区相关表,你还可以使用命名的时区,例如'Europe/Helsinki'、'US/Eastern'或'MET'。值'SYSTEM'说明该时区应与系统时区相同。时区名对大小写不敏感。

SELECT @@global.time_zone, @@session.time_zone

两个字段都是显示 system

人气教程排行