РЕДАКТИРАНЕ
От MySQL 5.6.4, тип данни TIMESTAMP(n)
определя n
(0 до 6) десетични цифри с точност за дробни секунди.
Преди MySQL 5.6 MySQL не поддържаше частични секунди, съхранявани като част от TIMESTAMP
тип данни.
Справка:https://dev.mysql.com/doc /refman/5.6/en/fractional-seconds.html
Не е необходимо да указваме модификатор на дължина в TIMESTAMP
. Можем просто да посочим TIMESTAMP
от само себе си.
Но имайте предвид, че първият TIMESTAMP
колоната, дефинирана в таблицата, подлежи на автоматична инициализация и актуализиране. Например:
create table foo (id int, ts timestamp, val varchar(2));
show create table foo;
CREATE TABLE `foo` (
`id` INT(11) DEFAULT NULL,
`ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`val` VARCHAR(2) DEFAULT NULL
)
Това, което влиза в скоби след тип данни, зависи от това какъв е типът данни, но за някои типове данни това е модификатор на дължина.
За някои типове данни модификаторът на дължина засяга максималната дължина на стойностите, които могат да бъдат съхранени. Например, VARCHAR(20)
позволява да се съхраняват до 20 знака. И DECIMAL(10,6)
позволява числови стойности с четири цифри преди десетичната запетая и шест след десетичната запетая и ефективен диапазон от -9999,999999 до 9999,999999.
За други типове модификаторът на дължина не засяга диапазона от стойности, които могат да бъдат съхранени. Например, INT(4)
и INT(10)
и двете са цели числа и и двете могат да съхраняват пълния диапазон от стойности за разрешени за целочисления тип данни.
Това, което прави този модификатор на дължина в този случай, е само информационно. По същество той определя препоръчителната ширина на дисплея. Клиентът може да използва това, за да определи колко място да резервира на ред за показване на стойности от колоната. Клиентът не трябва да прави това, но тази информация е налична.
РЕДАКТИРАНЕ
Модификатор на дължина вече не се приема за TIMESTAMP
тип данни. (Ако използвате наистина стара версия на MySQL и тя е приета, тя ще бъде игнорирана.)