Spec-Zone .ru
спецификации, руководства, описания, API

10.6. MySQL Server Time Zone Support

10.6.1. Остающийся Ток с Изменениями Часового пояса
10.6.2. Прыжок Часового пояса Вторая Поддержка

Сервер MySQL поддерживает несколько установок часового пояса:

Текущая установка часового пояса сеанса влияет на дисплей и хранение временных стоимостей, которые чувствительны к зоне. Это включает значения, выведенные на экран функциями такой как NOW() или CURTIME(), и значения, сохраненные в и полученный от TIMESTAMP столбцы. Значения для TIMESTAMP столбцы преобразовываются от зоны текущего времени до UTC для хранения, и от UTC до зоны текущего времени для извлечения.

Установка зоны текущего времени не влияет на значения, выведенные на экран функциями такой как UTC_TIMESTAMP() или значения в DATE, TIME, или DATETIME столбцы. Ни значения в тех типах данных, сохраненных в UTC; часовой пояс просит их только, преобразовывая из TIMESTAMP значения. Если Вы хотите специфичную для локали арифметику для DATE, TIME, или DATETIME значения, преобразуйте их в UTC, выполните арифметику, и затем преобразуйте назад.

Текущая стоимость глобальных и специфичных для клиента часовых поясов может быть получена как это:

mysql> SELECT @@global.time_zone,
        @@session.time_zone;

timezone значения могут быть даны в нескольких форматах, ни один из которых не является чувствительным к регистру:

Процесс установки MySQL составляет таблицы часового пояса в mysql база данных, но не загружает их. Следует сделать так вручную использование следующих инструкций. (Если Вы обновляете до MySQL 4.1.3 или позже от более ранней версии, можно составить таблицы, обновляя Ваш mysql база данных. Используйте инструкции в Разделе 4.4.7, "mysql_upgrade — Таблицы MySQL Check и Upgrade" . После составления таблиц можно загрузить их.)

Отметить

Загрузка информации о часовом поясе является не обязательно одноразовой работой, потому что информация иногда изменяется. Например, правила в течение Летнего времени в Соединенных Штатах, Мексике, и частях Канады изменились в 2007. Когда такие изменения происходят, приложения, которые используют старые правила, становятся устаревшими, и можно счесть необходимым перезагрузить таблицы часового пояса, чтобы хранить информацию, используемую Вашим током сервера MySQL. См. примечания в конце этого раздела.

Если у Вашей системы есть своя собственная zoneinfo база данных (набор файлов, описывающих часовые пояса), следует использовать mysql_tzinfo_to_sql программу для того, чтобы заполнить таблицы часового пояса. Примерами таких систем является Linux, FreeBSD, Солярис, и Mac OS X. Одно вероятное расположение для этих файлов /usr/share/zoneinfo каталог. Если у Вашей системы нет zoneinfo базы данных, можно использовать загружаемый пакет, описанный позже в этом разделе.

mysql_tzinfo_to_sql программа используется, чтобы загрузить таблицы часового пояса. На командной строке передайте zoneinfo имя пути к каталогу к mysql_tzinfo_to_sql и отправьте вывод в mysql программу. Например:

shell> mysql_tzinfo_to_sql /usr/share/zoneinfo |
        mysql -u root mysql

mysql_tzinfo_to_sql читает файлы часового пояса Вашей системы и генерирует SQL-операторы от них. mysql обрабатывает те операторы, чтобы загрузить таблицы часового пояса.

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

Если Ваша система является той, у которой нет никакой zoneinfo базы данных (например, Windows или HP-UX), можно использовать пакет предварительно созданных таблиц часового пояса, который доступен для скачивания в MySQL Developer Zone:

http://dev.mysql.com/downloads/timezones.html

Этот пакет часового пояса содержит .frm, .MYD, и .MYI файлы для MyISAM таблицы часового пояса. Эти таблицы должны быть частью mysql база данных, таким образом, следует поместить файлы в mysql подкаталог Вашего каталога данных сервера MySQL. Сервер должен быть остановлен, в то время как Вы делаете это и перезапущенный позже.

Предупреждение

Не используйте загружаемый пакет, если у Вашей системы есть zoneinfo база данных. Используйте mysql_tzinfo_to_sql утилиту вместо этого. Иначе, можно вызвать различие в datetime, обрабатывающем между MySQL и другими приложениями на Вашей системе.

Для получения информации об установках часового пояса в установке репликации, пожалуйста, см. Раздел 16.4.1, "Функции репликации и Проблемы".