>  기사  >  백엔드 개발  >  mysql里面int类型时间字段为什么相差8小时的问题

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

WBOY
WBOY원래의
2016-06-23 14:11:32919검색

我在供应商的客户端软件查看各条记录的时间都是正常的,但我直接在后台使用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으로 문의하세요.
이전 기사:求助!从ASP转PHP 不会配置.다음 기사:问个问题.