Spec-Zone .ru
спецификации, руководства, описания, API
|
Сводка временных типов данных следует. Для дополнительной информации о свойствах и требованиях хранения временных типов, см. Раздел 11.3, "Дата и Типы Времени", и Раздел 11.6, "Требования Хранения Типа данных". Для описаний функций, которые работают на временных значениях, см. Раздел 12.7, "Дата и Функции Времени".
Для DATE
и DATETIME
описания диапазона, "поддерживаемые",
означают, что, хотя более ранние значения могли бы работать, нет никакой гарантии.
MySQL 5.6.4 и разрешает доли секунды для TIME
,
DATETIME
, и TIMESTAMP
значения, с до микросекунд (6 цифр) точность. Чтобы определить
столбец, который включает часть долей секунды, используйте синтаксис
,
где type_name
(fsp
)type_name
TIME
,
DATETIME
, или TIMESTAMP
, и fsp
точность долей
секунды. Например:
CREATE TABLE t1 (t TIME(3), dt DATETIME(6));
fsp
значение, если дано, должно быть в диапазоне от 0 до 6. Значение 0
показывает, что нет никакой дробной части. Если опущено, точность значения по умолчанию 0. (Это отличается от
стандартного значения по умолчанию SQL 6 для совместимости с предыдущими версиями MySQL.)
MySQL 5.6.5 представляет расширенную автоматическую инициализацию и обновление временных типов. Любой TIMESTAMP
у столбца в таблице могут быть эти свойства, а не самое большее один
столбец за таблицу. Кроме того, эти свойства теперь доступны для DATETIME
столбцы.
YEAR(2)
у типа данных есть определенные вопросы, которые следует рассмотреть прежде,
чем хотеть использовать его. С MySQL 5.6.6, YEAR(2)
осуждается. YEAR(2)
столбцы в существующих таблицах обрабатываются как прежде, но YEAR(2)
в новых или измененных таблицах преобразовываются в YEAR(4)
. Для получения дополнительной информации см. Раздел
11.3.4,"YEAR(2)
Ограничения и Переходящий на YEAR(4)
".
Дата. Поддерживаемый диапазон '1000-01-01'
к '9999-12-31'
.
Дисплеи MySQL DATE
значения в 'YYYY-MM-DD'
формат,
но присвоение разрешений значений к DATE
столбцы используя или строки или числа.
Дата и комбинация времени. Поддерживаемый диапазон '1000-01-01
00:00:00.000000'
к '9999-12-31 23:59:59.999999'
. Дисплеи MySQL
DATETIME
значения в 'YYYY-MM-DD HH:MM:SS[.fraction]'
формат, но присвоение
разрешений значений к DATETIME
столбцы используя или строки или числа.
С MySQL 5.6.4, дополнительного fsp
значение в диапазоне от
0 до 6 может быть дано, чтобы определить точность долей секунды. Значение 0 показывает, что нет
никакой дробной части. Если опущено, точность значения по умолчанию 0.
С MySQL 5.6.5, автоматической инициализации и обновляющий к текущей дате и время для DATETIME
столбцы могут быть определены, используя DEFAULT
и ON UPDATE
пункты определения
столбца, как описано в Разделе
11.3.5, "Автоматическая Инициализация и Обновляющий для TIMESTAMP
и DATETIME
".
Метка времени. Диапазон '1970-01-01 00:00:01.000000'
UTC к '2038-01-19 03:14:07.999999'
UTC. TIMESTAMP
значения сохранены как число секунд начиная с эпохи ('1970-01-01 00:00:00'
UTC). A TIMESTAMP
не может представить значение '1970-01-01
00:00:00'
потому что это эквивалентно 0 секундам от эпохи, и значение 0 резервируется для
того, чтобы представить '0000-00-00 00:00:00'
, "нуль" TIMESTAMP
значение.
С MySQL 5.6.4, дополнительного fsp
значение в диапазоне от
0 до 6 может быть дано, чтобы определить точность долей секунды. Значение 0 показывает, что нет
никакой дробной части. Если опущено, точность значения по умолчанию 0.
Путем сервер обрабатывает TIMESTAMP
определения зависят от значения explicit_defaults_for_timestamp
системная переменная (см. Раздел 5.1.4, "Системные Переменные
Сервера"). По умолчанию, explicit_defaults_for_timestamp
отключается и дескрипторы сервера
TIMESTAMP
следующим образом:
Если не определено иначе, первое TIMESTAMP
столбец в таблице определяется, чтобы быть автоматически
установленным в дату и время новой модификации если не явно присвоенный значение. Это делает TIMESTAMP
полезный для записи метки времени INSERT
или UPDATE
работа. Можно также установить любого TIMESTAMP
столбец к текущей дате и время, присваивая это a NULL
значение, если это не было определено с помощью NULL
припишите разрешению NULL
значения.
Автоматическая инициализация и обновляющий к текущей дате и время может быть определена, используя
DEFAULT CURRENT_TIMESTAMP
и ON UPDATE
CURRENT_TIMESTAMP
пункты определения столбца. По умолчанию, первое TIMESTAMP
у столбца есть эти свойства, как ранее отмечено. С
MySQL 5.6.5, любого TIMESTAMP
столбец в таблице может быть определен, чтобы иметь эти
свойства. Прежде 5.6.5, самое большее один TIMESTAMP
у столбца на таблицу могут быть они, но возможно
подавить их для первого столбца и вместо этого присвоить их различному TIMESTAMP
столбец. См. Раздел
11.3.5, "Автоматическая Инициализация и Обновляющий для TIMESTAMP
и DATETIME
".
Если explicit_defaults_for_timestamp
включается, нет никакого
автоматического присвоения DEFAULT CURRENT_TIMESTAMP
или ON UPDATE CURRENT_TIMESTAMP
атрибуты любому TIMESTAMP
столбец. Они должны быть включены явно в определении
столбца. Кроме того, любой TIMESTAMP
не явно объявленный как NOT
NULL
разрешения NULL
значения.
explicit_defaults_for_timestamp
доступно с MySQL 5.6.6. Прежде 5.6.6,
дескрипторы сервера TIMESTAMP
как обсуждено для explicit_defaults_for_timestamp
отключенный. Те поведения, в то
время как они остаются значением по умолчанию, нестандартны и осуждаются с 5.6.6. Для обсуждения
относительно обновления до установки с explicit_defaults_for_timestamp
включенный, см. Раздел
2.11.1.1, "Обновляя от MySQL 5.5 до 5.6".
Время. Диапазон '-838:59:59.000000'
к '838:59:59.000000'
.
Дисплеи MySQL TIME
значения в 'HH:MM:SS[.fraction]'
формат, но присвоение разрешений значений к TIME
столбцы используя или строки или числа.
С MySQL 5.6.4, дополнительного fsp
значение в диапазоне от
0 до 6 может быть дано, чтобы определить точность долей секунды. Значение 0 показывает, что нет
никакой дробной части. Если опущено, точность значения по умолчанию 0.
Год в двухразрядном или четырехразрядном формате. Значение по умолчанию является четырехразрядным
форматом. YEAR(2)
или YEAR(4)
отличайтесь
по формату дисплея, но имейте тот же самый диапазон значений. В четырехразрядном формате, дисплей
значений как 1901
к 2155
, и 0000
. В двухразрядном формате, дисплей значений как 70
к 69
, представление лет с 1970 до
2069. Дисплеи MySQL YEAR
значения в YYYY
или YY
формат, но присвоение разрешений значений к YEAR
столбцы используя или строки или числа.
YEAR(2)
у типа данных есть определенные вопросы, которые
следует рассмотреть прежде, чем хотеть использовать его. С MySQL 5.6.6, YEAR(2)
осуждается. YEAR(2)
столбцы в существующих таблицах обрабатываются
как прежде, но YEAR(2)
в новых или измененных таблицах
преобразовываются в YEAR(4)
. Для получения дополнительной
информации см. Раздел 11.3.4,"YEAR(2)
Ограничения и Переходящий на YEAR(4)
"
.
Для дополнительной информации о YEAR
выведите на экран формат и
интерпретацию входных значений, см. Раздел 11.3.3," YEAR
Введите".
SUM()
и AVG()
агрегатные функции не работают с временными значениями. (Они
преобразовывают значения в числа, теряя все после первого нечислового символа.), Чтобы работать вокруг этой
проблемы, преобразуйте в числовые модули, выполните совокупную работу, и преобразуйте назад во временное
значение. Примеры:
SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(time_col
))) FROMtbl_name
;SELECT FROM_DAYS(SUM(TO_DAYS(date_col
))) FROMtbl_name
;
Сервер MySQL может быть выполнен с MAXDB
Режим SQL включается. В этом случае, TIMESTAMP
идентично с DATETIME
. Если этот режим включается в то время, когда таблица составляется,
TIMESTAMP
столбцы создаются как DATETIME
столбцы. В результате такое использование столбцов DATETIME
выведите на экран формат, имейте тот же самый диапазон значений,
и нет никакой автоматической инициализации или обновляющий к текущей дате и время. См. Раздел
5.1.7, "Режимы SQL Сервера".