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

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

WBOY
WBOYOriginal
2016-06-23 14:11:32920browse

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:求助!从ASP转PHP 不会配置.Next article:问个问题.