EDIT
Począwszy od MySQL 5.6.4, określa typ danych TIMESTAMP(n)
n
(0 do 6) cyfr dziesiętnych z dokładnością do ułamków sekund.
Przed MySQL 5.6, MySQL nie obsługiwał ułamkowych sekund przechowywanych jako część typu danych TIMESTAMP
.
referencyjny: https://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html
Nie trzeba określić modyfikator długości na TIMESTAMP
. Możemy samodzielnie określić tylko TIMESTAMP
.
Należy jednak pamiętać, że pierwsza kolumna TIMESTAMP
zdefiniowana w tabeli podlega automatycznej inicjalizacji i aktualizacji. Na przykład:
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 idzie w parens następujących typ danych zależy od typu danych, co jest, ale dla niektórych typów danych, to modyfikator długości.
W przypadku niektórych typów danych modyfikator długości wpływa na maksymalną długość wartości, które można zapisać. Na przykład VARCHAR(20)
pozwala zapisać do 20 znaków. I DECIMAL(10,6)
pozwala na wartości numeryczne z czterema cyframi przed przecinkiem dziesiętnym i sześcioma po i skutecznym zakresem od -9999.999999 do 9999.999999.
W przypadku innych typów modyfikator długości nie wpływa na zakres wartości, które można zapisać. Na przykład: INT(4)
i INT(10)
są liczbami całkowitymi i oba mogą przechowywać pełny zakres wartości dozwolonych dla typu danych integer.
Co ten modyfikator długości w tym przypadku ma charakter informacyjny. Zasadniczo określa zalecaną szerokość wyświetlania. Klient może z tego skorzystać, aby określić, ile miejsca zarezerwować w wierszu, aby wyświetlić wartości z kolumny. Klient nie musi tego robić, ale ta informacja jest dostępna.
EDIT
Długość modyfikator nie jest już przyjęte do
TIMESTAMP
typu danych. (Jeśli używasz naprawdę starej wersji MySQL i zostanie ona zaakceptowana, zostanie zignorowana.)
dobre referencje: https://dev.mysql.com/doc/refman/5.7/en/datetime.html –