UPRAVIT
Od MySQL 5.6.4 datový typ TIMESTAMP(n)
určuje n
(0 až 6) desetinných míst s přesností na zlomky sekund.
Před MySQL 5.6 MySQL nepodporovalo zlomkové sekundy uložené jako součást TIMESTAMP
datový typ.
Reference:https://dev.mysql.com/doc /refman/5.6/en/fractional-seconds.html
U TIMESTAMP
nemusíme zadávat modifikátor délky . Můžeme jen zadat TIMESTAMP
sám o sobě.
Ale mějte na paměti, že první TIMESTAMP
sloupec definovaný v tabulce podléhá automatické inicializaci a aktualizaci. Například:
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
)
Co je v závorkách za datovým typem, závisí na tom, jaký je datový typ, ale u některých datových typů je to modifikátor délky.
U některých datových typů ovlivňuje modifikátor délky maximální délku hodnot, které lze uložit. Například VARCHAR(20)
umožňuje uložit až 20 znaků. A DECIMAL(10,6)
umožňuje číselné hodnoty se čtyřmi číslicemi před desetinnou čárkou a šesti za desetinnou čárkou a efektivním rozsahem -9999,999999 až 9999,999999.
U ostatních typů neovlivňuje modifikátor délky rozsah hodnot, které lze uložit. Například INT(4)
a INT(10)
obě jsou celočíselné a obě mohou ukládat celý rozsah hodnot povolených pro datový typ integer.
Co v tomto případě dělá modifikátor délky, je pouze informativní. V podstatě určuje doporučenou šířku zobrazení. Klient toho může využít k určení toho, kolik místa má na řádku vyhradit pro zobrazení hodnot ze sloupce. Klient to dělat nemusí, ale tyto informace jsou k dispozici.
UPRAVIT
U TIMESTAMP
již není akceptován modifikátor délky datový typ. (Pokud používáte opravdu starou verzi MySQL a je akceptována, bude ignorována.)