TIMESTAMP
Тип столбца TIMESTAMP
обеспечивает тип представления данных, который можно использовать для автоматической записи текущих даты и времени при выполнении операций INSERT
или UPDATE
. При наличии нескольких столбцов типа TIMESTAMP
только первый из них обновляется автоматически.
Автоматическое обновление первого столбца с типом TIMESTAMP
происходит при выполнении любого из следующих условий:
Столбец не указан явно в команде
INSERT
илиLOAD DATA IN
.Столбец не указан явно в команде
UPDATE
, и при этом изменяется величина в некотором другом столбце (следует отметить, что командаUPDATE
, устанавливающая столбец в то же самое значение, которое было до выполнения команды, не вызовет обновления столбцаTIMESTAMP
, поскольку в целях повышения производительности MySQL игнорирует подобные обновления при установке столбца в его текущее значение).Величина в столбце
TIMESTAMP
явно установлена вNULL
.
Для остальных (кроме первого) столбцов типа TIMESTAMP также можно задать установку в значение текущих даты и времени. Для этого необходимо просто установить столбец в NULL
или в NOW()
.
Любой столбец типа TIMESTAMP
(даже первый столбец данного типа) можно установить в значение, отличное от текущих даты и времени. Это делается путем явной установки его в желаемое значение. Данное свойство можно использовать, например, если необходимо установить столбец TIMESTAMP
в значение текущих даты и времени при создании строки, а при последующем обновлении этой строки значение столбца не должно изменяться:
Пусть MySQL автоматически установит значение столбца с типом
TIMESTAMP
при создании данной строки. Столбец будет установлен в исходное состояние со значением текущих даты и времени.При выполнении последующих обновлений других столбцов в данной строке необходимо явно установить столбец
TIMESTAMP
в его текущее значение.
Однако, с другой стороны, для этих целей, возможно, будет проще использовать столбец DATETIME
. При создании строки его следует инициализировать функцией NOW()
и оставить в покое при последующих обновлениях.
Величины типа TIMESTAMP
могут принимать значения от начала 1970 года до некоторого значения в 2037 году с разрешением в одну секунду. Эти величины выводятся в виде числовых значений.
Формат данных, в котором MySQL извлекает и показывает величины TIMESTAMP
, зависит от количества показываемых символов. Это проиллюстрировано в приведенной ниже таблице. Полный формат TIMESTAMP
составляет 14 десятичных разрядов, но можно создавать столбцы типа TIMESTAMP
и с более короткой строкой вывода:
Тип столбца | Формат вывода |
---|---|
TIMESTAMP(14) | YYYYMMDDHHMMSS |
TIMESTAMP(12) | YYMMDDHHMMSS |
TIMESTAMP(10) | YYMMDDHHMM |
TIMESTAMP(8) | YYYYMMDD |
TIMESTAMP(6) | YYMMDD |
TIMESTAMP(4) | YYMM |
TIMESTAMP(2) | YY |
Независимо от размера выводимого значения размер данных, хранящихся в столбцах типа TIMESTAMP
, всегда один и тот же. Чаще всего используется формат вывода с 6, 8, 12 или 14 десятичными знаками. При создании таблицы можно указать произвольный размер выводимых значений, однако если этот размер задать равным 0 или превышающим 14, то будет использоваться значение 14. Нечетные значения размеров в интервале от 1 до 13 будут приведены к ближайшему большему четному числу.
Last updated