Как узнать timezone phpmyadmin

Как установить часовой пояс в MySQL

Установить часовой пояс для определенного пользователя можно выполнив в консоли MySQL

SET time_zone = ‘+05:00’;

Чтобы изменения сохранились после перезагрузки и имели силу для всего сервера баз данных нужно задать глобальную переменную:

SET GLOBAL time_zone = ‘+5:00’;

Можно также указывать имя временной зоны — например, MSK для Москвы, но лучшей практикой является задавать часовой пояс определяя разницу с временем по Гринвичу как сделано выше

Также время опционально для конкретной сессии

mysql> set @@session.time_zone = ‘+00:00’;

Можно выяснить требуется ли задавать время для сессии выполнив:

mysql> SELECT @@global.time_zone, @@session.time_zone;
+———————+———————+
| @@global.time_zone | @@session.time_zone |
+———————+———————+
| SYSTEM | SYSTEM |
+———————+———————+
1 row in set (0.00 sec)

В данном случае время сессии совпадает с системным и непосредственное его задание не требуется.

Время в MySQL может указываться в TIMESTAMP и DATETIME

Общее правило для корректной работы приложения — время РНР должно совпадать с временем MySQL. Если корректируется время в РНР, то скорректировать его нужно и в MySQL.

Чаще всего на практике для сервера на котором работают один или несколько сайтов ценной оказывается команда:

SET GLOBAL time_zone = ‘+5:00’;

Кроме часового пояса MySQL приходится задавать часовой пояс в настройках РНР и системное время на сервере.

Источник

Настройка часового пояса MySQL

Как узнать timezone phpmyadmin. Смотреть фото Как узнать timezone phpmyadmin. Смотреть картинку Как узнать timezone phpmyadmin. Картинка про Как узнать timezone phpmyadmin. Фото Как узнать timezone phpmyadmin

Хранение даты в MySQL с учетом часового пояса — непростая тема. Однако с ней обязательно нужно разобраться, чтобы сайты и приложения работали правильно.

Время и дату в MySQL можно указывать в TIMESTAMP и DATETIME.

Для определения времени с учетом часового пояса MySQL можно отредактировать конфигурационный файл или использовать переменные. Мы рассмотрим оба способа.

Как установить время MySQL в конфигурационном файле

Самая большая проблема — найти конфигурационный файл my.cnf. Он может храниться как минимум в 5 местах:

Если вы нашли конфигурационный файл, то дальше уже сложностей не будет. Чтобы установить часовой пояс, добавьте в секцию [mysqld] следующую строку:

В этом случае мы прибавляем 2 часа относительно UTC — всемирного координированного времени. Поддерживаются также другие значения:

Чтобы применить конфигурацию, перезапустите MySQL.

Как установить часовой пояс MySQL через переменные

Чтобы изменить часовой через переменные в консоли, нужны права суперпользователя. Авторизуйтесь под root и укажите пароль. Затем посмотрите текущие дату и время. Сделать это можно командой

Если хотите вывести только время (без даты), выполните в консоли

Установить часовой пояс для конкретного пользователя можно через консоль, выполнив команду

В качестве примера мы поставили время, которое смещено относительно UTC на 2 часа. Однако у такого подхода есть большой недостаток. Если в стране принято переводить часы на летнее/зимнее время, то запрос обрабатывается неверно. В зависимости от текущего периода можно получить время на час больше или меньше. Чтобы устранить эту особенность, задайте временную зону в таком формате:

Однако и у такого подхода есть свои подводные камни. Например, в стране могут измениться правила перехода на зимнее и летнее время. В России за последнее десятилетие это случилось два раза: сначала перешли на летнее время, отказавшись от зимнего, а затем сделали наоборот — отказались от летнего, оставив только зимнее. Поэтому нужно следить за актуальностью данных и вносить изменения в часовые пояса MySQL вручную.

Чтобы изменения сохранялись после перезагрузки и применялись ко всему серверу баз данных, используйте глобальную переменную:

Также можно задавать время опционально для одной сессии. Для этого выполните команду

Можно проверить, требуется ли задавать время для конкретной сессии, выполнив команду

Если время сессии совпадает с системным, то задавать его отдельно не требуется.

Для корректной работы веб-приложения время PHP и MySQL должны совпадать. Если вы корректируете время в PHP, то нужно изменить часовой пояс MySQL, и наоборот.

Источник

Как мне узнать текущий часовой пояс MySQL?

Кто-нибудь знает, есть ли в MySQL такая функция?

ОБНОВЛЕНИЕ

Это не выводит никакой действительной информации:

15 ответов

Текущие значения глобальных часовых поясов и часовых поясов конкретного клиента можно получить следующим образом:
mysql> SELECT @@global.time_zone, @@session.time_zone;

Но весь вопрос о том, какой часовой пояс использует сервер MySQL, может быть касательным, потому что запрос сервера, в каком часовом поясе он находится, не говорит вам абсолютно ничего о данных в базе данных. Читайте подробности:

Дальнейшее обсуждение :

Это устанавливает часовой пояс на GMT, так что любые дальнейшие операции (например, now() ) будут использовать GMT.

Однако обратите внимание, что значения времени и даты не хранятся вместе с информацией о часовом поясе в MySQL:

Почему предполагается, что данные были записаны с использованием часового пояса сервера? Ну, с одной стороны, данные могли быть записаны с использованием соединения, которое установило другой часовой пояс. База данных могла быть перемещена с одного сервера на другой, где серверы находились в разных часовых поясах (я столкнулся с этим, когда унаследовал базу данных, переехавшую из Техаса в Калифорнию). Но даже если данные записываются на сервере с его текущим часовым поясом, они все равно неоднозначны. В прошлом году в США переход на летнее время был отключен в 2 часа ночи 1 ноября. Предположим, что мой сервер находится в Калифорнии, используется тихоокеанский часовой пояс, и у меня есть значение 2009-11-01 01:30:00 в базе данных. Когда это было? Это было в 1:30 1 ноября по тихоокеанскому времени или 1:30 1 ноября по тихоокеанскому времени (на час позже)? У вас нет абсолютно никакого способа узнать. Мораль: всегда храните дату / время в GMT (в котором не используется летнее время) и конвертируйте в нужный часовой пояс по мере необходимости.

Просто SELECT @@system_time_zone;

Возвращает PST (или что-то еще, имеющее отношение к вашей системе).

Если вы пытаетесь определить часовой пояс сеанса, вы можете использовать этот запрос:
SELECT IF(@@session.time_zone = ‘SYSTEM’, @@system_time_zone, @@session.time_zone);

Что вернет часовой пояс сеанса, если он отличается от часового пояса системы.

Чтобы получить текущее время в соответствии с вашим часовым поясом, вы можете использовать следующее (в моем случае это ‘+5: 30’)

выберите DATE_FORMAT (convert_tz (now (), @@ session.time_zone, ‘+ 05:30’), ‘% Y-% m-% d’)

Запрос ниже возвращает часовой пояс текущего сеанса.

Чтобы получить текущий часовой пояс mysql, вы можете сделать следующее:

Теперь, если вы хотите изменить часовой пояс mysql, тогда:

Кому угодно найти часовой пояс mysql db.

С помощью этого запроса вы можете получить текущий часовой пояс:

Если вам нужна разница по Гринвичу в виде целого числа :

Команда, упомянутая в описании, возвращает «СИСТЕМУ», что указывает на то, что она принимает часовой пояс сервера. Что бесполезно для нашего запроса.

Следующий запрос поможет понять часовой пояс

UTC_TIMESTAMP

В MySQL UTC_TIMESTAMP возвращает текущую дату и время в формате UTC в виде значения в формате ГГГГ-ММ-ДД ЧЧ: ММ: СС или ГГГГММДДЧЧММСС.uuuuuu в зависимости от использования функции, то есть в строковом или числовом контексте.

СЕЙЧАС ()

СЕЙЧАС () функция. MySQL NOW () возвращает значение текущей даты и времени в формате «ГГГГ-ММ-ДД ЧЧ: ММ: СС» или формате ГГГГММДДЧЧММСС.uuuuuu в зависимости от контекста (числового или строкового) функции. CURRENT_TIMESTAMP, CURRENT_TIMESTAMP (), LOCALTIME, LOCALTIME (), LOCALTIMESTAMP, LOCALTIMESTAMP () являются синонимами NOW ().

Ознакомьтесь с поддержкой часовых поясов сервера MySQL и system_time_zone системная переменная. Это помогает?

Источник

Как получить текущий часовой пояс MySQL?

кто-нибудь знает, есть ли такая функция в MySQL?

обновление

это не выводит никакой действительной информации:

16 ответов

текущие значения глобальных и клиентских часовых поясов можно получить следующим образом:
mysql> SELECT @@global.time_zone, @@session.time_zone;

но весь вопрос о том, какой часовой пояс использует сервер MySQL, может быть касательной, потому что, спрашивая сервер, в каком часовом поясе он говорит вам абсолютно ничего о данных в базе данных. Прочитайте детали:

дальнейшего обсуждения:

если вы контролируете сервер, конечно, вы можете убедиться, что часовой пояс является известным количество. Если вы не контролируете сервер, вы можете установить часовой пояс, используемый вашим подключение такой:

это устанавливает часовой пояс в GMT, так что любые дальнейшие операции (например, now() ) будет использовать GMT.

обратите внимание, что значения времени и даты не хранится с информацией часового пояса в MySQL:

почему предполагается, что данные были написано с использованием часового пояса сервера? Ну, во-первых, данные могли быть записаны с помощью соединения, которое установило другой часовой пояс. Возможно, база данных была перемещена с одного сервера на другой, где серверы находились в разных часовых поясах (я столкнулся с этим, когда унаследовал базу данных, которая переехала из Техаса в Калифорнию). Но!—21—>даже если данные записаны на сервере, с его текущим часовым поясом, это все еще неоднозначно. В прошлом году, в США, дневной свет Экономия времени была отключена в 2 часа ночи 1 ноября. Предположим, мой сервер находится в Калифорнии, используя Тихоокеанский часовой пояс, и у меня есть значение 2009-11-01 01:30:00 в базе данных. Когда это было? Было ли это 1: 30 утра 1 ноября PDT или 1: 30 ночи 1 ноября PST (час спустя)? У вас нет абсолютно никакого способа знать. Мораль: всегда храните даты/время в GMT (который не делает DST) и преобразуйте в нужный часовой пояс по мере необходимости.

Источник

Как получить текущий часовой пояс MySQL?

кто-нибудь знает, есть ли такая функция в MySQL?

обновление

это не выводит никакой действительной информации:

16 ответов:

текущие значения глобальных и клиентских часовых поясов могут быть получены следующим образом:
mysql> SELECT @@global.time_zone, @@session.time_zone;

но весь вопрос о том, какой часовой пояс использует сервер MySQL, может быть касательным, потому что спрашивать сервер, в каком часовом поясе он находится, говорит вам абсолютно ничего о данных в базе данных. Читайте дальше для деталей:

дальнейшего обсуждения:

если вы контролируете сервер, конечно, вы можете убедиться, что часовой пояс известен количество. Если вы не контролируете сервер, вы можете установить часовой пояс, используемый вашим подключение такой:

это устанавливает часовой пояс в GMT, так что любые дальнейшие операции (например, now() ) будет использовать GMT.

заметим, однако, что время и дата значения не хранится с информацией о часовом поясе в MySQL:

почему предполагается, что данные были написано с использованием часового пояса сервера ошибочным? Ну, во-первых, данные могут быть записаны с использованием соединения, которое устанавливает другой часовой пояс. Возможно, база данных была перемещена с одного сервера на другой, где серверы находились в разных часовых поясах (я столкнулся с этим, когда унаследовал базу данных, которая переехала из Техаса в Калифорнию). Но даже если данные записаны на сервере, с его текущим часовым поясом, это все еще неоднозначно. В прошлом году, в Соединенных Штатах, дневной свет Экономия времени была отключена в 2:00 утра 1-го ноября. Предположим, что мой сервер находится в Калифорнии, с использованием Тихоокеанский часовой пояс и у меня есть значение 2009-11-01 01:30:00 в базе данных. Когда это было? Было 1:30 утра 1 ноября по тихоокеанскому времени, или 1:30 утра 1 ноября по тихоокеанскому времени (на час позже)? У вас нет абсолютно никакого способа знать. Мораль: всегда храните даты/время в GMT (что не делает DST) и конвертируйте в нужный часовой пояс по мере необходимости.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *