Ответ 1
Поскольку вы используете Windows, вам придется импортировать таблицы описания часовых поясов на ваш сервер MySQL.
Мой сервер работает в MDT
Итак, я использовал следующий для преобразования EST
SET time_zone = '-5:00'
Но как я могу переключить его на EDT
, потому что
While `EST` is only valid in winter, while in summer how to change it to `EDT`
Я просто пытаюсь использовать именованный часовой пояс. Но я получаю следующую ошибку
#1298 - Unknown or incorrect time zone: 'America/Toronto'
Я не понимаю, как решить эту проблему.
Как я могу переключить
UTC -05 TO UTC-04
Поскольку вы используете Windows, вам придется импортировать таблицы описания часовых поясов на ваш сервер MySQL.
Для Linux, BSD и Mac OS X, если вам нужно загрузить таблицу часовых поясов, выполните следующие действия:
$ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -uroot mysql
Для меня на Windows с помощью WampServer:
Дополнительная информация:
"Чтобы использовать пакет часового пояса, содержащий файлы .frm,.MYD и .MYI для таблиц часовых поясов MyISAM, загрузите и распакуйте его. Эти файлы таблиц являются частью базы данных mysql, поэтому вы должны поместить файлы в mysqlsubdirectory вашего каталога данных сервера MySQL. Остановите сервер до этого и перезапустите его позже
http://dev.mysql.com/doc/refman/5.7/en/time-zone-support.html#time-zone-installation
Вы пытались использовать название zoneinfo, такое как "America/New_York" вместо аббревиатуры (которая действительна только в течение половины времени)?
В идеале, вы не должны вообще использовать часовой пояс сервера - сохраняйте даты в UTC, а затем конвертируйте их в соответствующий часовой пояс в коде клиента. (Обратите внимание, что это зависит от того, что вы храните. Будущие значения даты/времени, указанные пользователем с часовым поясом, должны храниться таким образом, а не преобразовываться в какой-либо другой часовой пояс, если правила изменяются между настоящим моментом и будущие дата/время. Но для моментов времени, записанных машинами, например, для ведения журнала, транзакций и т.д., я бы определенно сохранял UTC. Я бы никогда не предложил хранить "только местное время" и предполагал бы, что сервер и клиент имеют одинаковые правила ".)
Для полноты картины пользователи Mac могут найти утилиту mysql_tzinfo_to_sql
в mysql_tzinfo_to_sql
/usr/local/mysql/bin
.
Следовательно, полная команда будет /usr/local/mysql/bin/mysql_tzinfo_to_sql/usr/share/zoneinfo |./mysql -p -u root mysql
/usr/local/mysql/bin/mysql_tzinfo_to_sql/usr/share/zoneinfo |./mysql -p -u root mysql
Я потратил часы, чтобы найти утилиту, вышеупомянутый путь может спасти ваш!