首頁  >  文章  >  後端開發  >  mysql里面int类型时间字段为什么相差8小时的问题

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

WBOY
WBOY原創
2016-06-23 14:11:32920瀏覽

我在供应商的客户端软件查看各条记录的时间都是正常的,但我直接在后台使用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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn