我该如何将当前使用UTC的时区更改为GMT + 1,正确的线路是什么,我只是将其输入到phpMyAdmin SQL执行中?MySQL时区更改?
我的主人刚给了我这个链接http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html,去了,所以我有点失去了感谢
我该如何将当前使用UTC的时区更改为GMT + 1,正确的线路是什么,我只是将其输入到phpMyAdmin SQL执行中?MySQL时区更改?
我的主人刚给了我这个链接http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html,去了,所以我有点失去了感谢
发出以下命令:
SET time_zone = 'America/New_York';
(或其他时区GMT + 1:http://www.php.net/manual/en/timezones.php)
这是为单个客户端设置MySQL时区的命令,假设您的客户端跨多个时区分布。
该命令应该在涉及日期的每个SQL命令之前执行。如果您的查询通过课程,那么这很容易实现。
如果你有SUPER权限,可以在运行时设置全局服务器时区值有这样的说法:
mysql> SET GLOBAL time_zone = timezone;
如果有没有superadmin特权? – 2014-07-23 07:19:06
只是'SET time_zone = timezone;' – 2016-01-01 00:11:50
虽然拜伦的答案是有帮助的,我只想补充一点,他的链接是PHP时区名称,它们与MySQL时区名称不同。
如果您想将单个会话的时区设置为GMT + 1(准确的说是UTC + 1),则只需在该命令中使用字符串“+01:00”即可。即:
SET time_zone = '+01:00';
要查看你的MySQL会话使用的是什么时区,只是执行此:
SELECT @@global.time_zone, @@session.time_zone;
这是更多的细节有很大的参考:MySQL 5.5 Reference on Time Zones
最简单的正如欧麦尔所指出的那样,例如:
mysql> SET GLOBAL time_zone = 'America/New_York';
使用指定的时区对于具有日光节约调整的时区很重要。然而,对于一些Linux版本,你可能会得到如下回应:
#1298 - 未知或不正确的时区
如果您看到了这一点,你可能需要运行一个tzinfo_to_sql翻译..这很容易做到,但并不明显。从Linux命令行键入:
mysql_tzinfo_to_sql /usr/share/zoneinfo/|mysql -u root mysql -p
提供你的root密码(MySQL的root,而不是Linux根),它会在你的时区信息任何定义加载到MySQL。然后,您可以回去和运行
mysql> SET GLOBAL time_zone = timezone;
谢谢。关于linux端的信息适用于我。 – 2012-07-06 09:07:05
在centOS上完美工作7.1 – ryryan 2015-12-15 19:28:14
Windows上的用户如何获得“#1298 - 未知或不正确的时区”? – DelightedD0D 2016-11-08 04:08:36
这里是如何PHP(> = 5.3)和MySQL时区每个会话和用户设置同步。把它放在你需要设置和同步时区的地方。
date_default_timezone_set($my_timezone);
$n = new \DateTime();
$h = $n->getOffset()/3600;
$i = 60*($h-floor($h));
$offset = sprintf('%+d:%02d', $h, $i);
$this->db->query("SET time_zone='$offset'");
其中$ my_timezone是一个在PHP中的时区的列表:http://www.php.net/manual/en/timezones.php
PHP的时区必须转换成小时和分钟为MySQL偏移。这就是第1-4行。
难道你不能用<?= date('P')得到相同的结果吗? ?> – supersan 2015-12-26 17:02:56
如果SET TIME_ZONE或SET GLOBAL TIME_ZONE不起作用,你可以如下改变:
更改时区系统,比如:Ubuntu的... $ sudo的dpkg的 - 重新配置 的tzdata
重新启动服务器,也可以重新启动的Apache2和mysql (/etc/init.d/mysql重启)
这将自动更改日期/吨ime从所有TIMESTAMP字段获得,但不是DATETIME字段。 – 2013-09-26 06:29:50
它不会更改存储在DATETIME或TIMESTAMP字段中的值。 – 2013-09-26 06:36:33
它不适合我。 II得到一个“错误代码:1298.未知或不正确的时区:'America/New_York' ” – user1028741 2014-09-17 14:01:42