Изменение часового пояса 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 tzdata​​p >

  • Перезагрузите сервер, или вы можете перезапустить apache2 и mysql (перезапуск/etc/init.d/mysql)