通过PhPMyAdmin在MySql Server上设置默认时区

时间:2011-03-21 17:53:09

标签: mysql database timezone

我有一个共享托管mySql实例,它的system_time_zone设置为太平洋标准时间,并且它的time_zone变量设置为System,因此它实际上是在太平洋标准时间运行。

即。我运行以下命令来找到它:

SELECT version( ) , @@time_zone , @@system_time_zone , NOW( ) , UTC_TIMESTAMP( )

我想将默认的mySql数据库/本地mySql数据库时区更改为GMT / UTC时间。我试图运行SET time_zone = '+0:00',这确实成功执行了!

但是,当我检查@@ time_zone的状态时,这似乎不会影响time_zone变量。我查看过处理类似问题的另一篇文章How to set MySQL to use GMT in Windows and Linux,我也检查了MySql documentation,进展甚微。由于我使用的是共享托管解决方案,因此我的访问权限有限,而且我无权访问我的PhPMyAdmin mySql功能。

我想知道是否有任何方法可以在SQL查询中更改default_time-zone,或者我是否需要回退到命令行(不幸的是我无法访问该命令行)。

感谢您的帮助和建议,

马丁

3 个答案:

答案 0 :(得分:7)

简而言之,MySQL实际上将“datetime”数据类型字段内部存储为UTC

HoweverPhpMyAdmin使用服务器默认时间显示日期,因此您会感到困惑。

例如,尝试在PhpMyAdmin中的SQL语句之前添加此行:

SET @@session.time_zone='+00:00';
SELECT * FROM MY_TABLE

有关详细信息或此帖中的答案,请参阅MySQL文档:How to correctly set mysql timezone

干杯 马特

答案 1 :(得分:1)

对于共享主机,您必须请求支持人员帮助您并更改默认时区吗?我与Arcor托管服务提供商有类似的问题,称他们并且他们修复了它。在此之前,我在PHP代码的date_default_timezone_set()中找到了临时解决方案。可能最好的解决方案是让有权限的人改变该参数。

答案 2 :(得分:-1)

<?php
date_default_timezone_set('UTC'); //define local time

$date=date('l jS \of F Y h:i:s A'); //type of time shown

$conn=mysql_connect("localhost","root","") or die('Could not connect!'); //your database connection here

$db_selected = mysql_select_db('databasename', $conn); //select db

$result=mysql_query("INSERT INTO table (date) VALUES ('$date')", $conn); 
?>

只需将时间作为VARCHAR发送到db希望它有帮助并抱歉语法错误(如果有的话)。