Изменение часового пояса MySQL?
Как мне изменить свой часовой пояс, который в настоящее время находится в UTC, на GMT +1, что такое правильная строка, и просто введите его в phpMyAdmin SQL?
Мой хост просто дал мне эту ссылку http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html и ушел, поэтому я потерял спасибо
Ответы
Ответ 1
выполните команду:
SET time_zone = 'America/New_York';
(Или любой часовой пояс GMT + 1: http://www.php.net/manual/en/timezones.php)
Это команда для установки часового пояса MySQL для отдельного клиента, предполагая, что ваши клиенты распространяются по нескольким часовым поясам.
Эта команда должна выполняться перед каждой командой SQL с датами. Если ваши запросы проходят через класс, то это легко реализовать.
Ответ 2
Самый простой способ сделать это, как отметил Умар, - это, например,
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
Предоставьте свой корневой пароль (корень MySQL, а не корень Linux), и он загрузит любые определения в вашем zoneinfo в mysql. Затем вы можете вернуться и запустить
mysql> SET GLOBAL time_zone = timezone;
Ответ 3
В то время как ответ Брайона полезен, я бы добавил, что его ссылка предназначена для имен часовых поясов PHP, которые не совпадают с именами часовых поясов MySQL.
Если вы хотите установить часовой пояс для отдельного сеанса в GMT + 1 (точнее, UTC + 1), просто используйте в этой команде строку '+01: 00'. I.e.:
SET time_zone = '+01:00';
Чтобы узнать, в какой временной зоне используется ваш сеанс MySQL, просто выполните следующее:
SELECT @@global.time_zone, @@session.time_zone;
Это отличная ссылка на более подробную информацию: Справочник MySQL 5.5 по часовым поясам
Ответ 4
Вот как синхронизировать 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.
Ответ 5
Если у вас есть привилегия SUPER, вы можете установить значение глобального часового сервера во время выполнения с помощью этого оператора:
mysql> SET GLOBAL time_zone = timezone;
Ответ 6
Если SET time_zone или SET GLOBAL time_zone не работают, вы можете изменить, как показано ниже:
-
Изменить систему часовых поясов, например: ubuntu... $sudo dpkg-reconfigure
tzdatap >
-
Перезагрузите сервер, или вы можете перезапустить apache2 и mysql
(перезапуск/etc/init.d/mysql)