我該如何將當前使用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