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

11.3.1. DATE, DATETIME, иTIMESTAMP Типы

DATE, DATETIME, и TIMESTAMP типы связываются. Этот раздел описывает их характеристики, как они подобны, и как они отличаются. MySQL распознает DATE, DATETIME, и TIMESTAMP значения в нескольких форматах, описанных в Разделе 9.1.3, "Дата и Литералы Времени". Для DATE и DATETIME описания диапазона, "поддерживаемые", означают, что, хотя более ранние значения могли бы работать, нет никакой гарантии.

DATE тип используется для значений с частью даты, но никакой частью времени. MySQL получает и выводит на экран DATE значения в 'YYYY-MM-DD' формат. Поддерживаемый диапазон '1000-01-01' к '9999-12-31'.

DATETIME тип используется для значений, которые содержат и дату и части времени. MySQL получает и выводит на экран DATETIME значения в 'YYYY-MM-DD HH:MM:SS' формат. Поддерживаемый диапазон '1000-01-01 00:00:00' к '9999-12-31 23:59:59'.

TIMESTAMP тип данных используется для значений, которые содержат и дату и части времени. TIMESTAMP имеет диапазон '1970-01-01 00:00:01' UTC к '2038-01-19 03:14:07' UTC.

A DATETIME или TIMESTAMP значение может включать запаздывающую часть долей секунды в до микросекунд (6 цифр) точность. В частности с MySQL 5.6.4 любая дробная часть в значении вставляется в a DATETIME или TIMESTAMP столбец сохранен, а не отбрасывается. С включенной дробной частью формат для этих значений 'YYYY-MM-DD HH:MM:SS[.fraction]', диапазон для DATETIME значения '1000-01-01 00:00:00.000000' к '9999-12-31 23:59:59.999999', и диапазон для TIMESTAMP значения '1970-01-01 00:00:01.000000' к '2038-01-19 03:14:07.999999'. Для получения информации о поддержке долей секунды в MySQL см. Раздел 11.3.6, "Доли секунды во Временных стоимостях".

TIMESTAMP и (с MySQL 5.6.5) DATETIME типы данных предлагают автоматическую инициализацию и обновляющий к текущей дате и время. Для получения дополнительной информации см. Раздел 11.3.5, "Автоматическая Инициализация и Обновляющий для TIMESTAMP и DATETIME".

MySQL преобразовывает TIMESTAMP значения от зоны текущего времени до UTC для хранения, и назад от UTC до зоны текущего времени для извлечения. (Это не происходит для других типов такой как DATETIME.) По умолчанию зона текущего времени для каждого соединения является временем сервера. Часовой пояс может быть установлен на основе для каждого подключения. Пока установка часового пояса остается постоянной, Вы возвращаете то же самое значение, которое Вы храните. Если Вы храните a TIMESTAMP значение, и затем изменяет часовой пояс и получает значение, полученное значение отличается от значения, которое Вы сохранили. Это происходит, потому что тот же самый часовой пояс не использовался для преобразования в обоих направлениях. Зона текущего времени доступна как значение time_zone системная переменная. Для получения дополнительной информации см. Раздел 10.6, "MySQL Server Time Zone Support".

Недопустимый DATE, DATETIME, или TIMESTAMP значения преобразовываются в "нулевое" значение соответствующего типа ('0000-00-00' или '0000-00-00 00:00:00').

Знайте об определенных свойствах интерпретации значения даты в MySQL:

Отметить

Сервер MySQL может быть выполнен с MAXDB Режим SQL включается. В этом случае, TIMESTAMP идентично с DATETIME. Если этот режим включается в то время, когда таблица составляется, TIMESTAMP столбцы создаются как DATETIME столбцы. В результате такое использование столбцов DATETIME выведите на экран формат, имейте тот же самый диапазон значений, и нет никакой автоматической инициализации или обновляющий к текущей дате и время. См. Раздел 5.1.7, "Режимы SQL Сервера".