2015-06-02 12 views
9

To może być naprawdę elementarne pytanie, ale nigdy wcześniej nie stworzyłem tabeli z TIMESTAMP() i jestem zdezorientowany tym, co umieścić jako parametry. Na przykład tutaj:Ustawianie kolumny jako znacznika czasu w środowisku roboczym MySql?

enter image description here

po prostu losowo umieścić TIMESTAMP(20), ale co robi 20 jako parametr oznacza tutaj? Co tu należy umieścić?

Przeszukałem to pytanie, ale tak naprawdę nie wymyśliłem niczego, więc ... W każdym razie jestem nowy w sql, więc jakakolwiek pomoc byłaby bardzo doceniana, dziękuję !!

+0

dobre referencje: https://dev.mysql.com/doc/refman/5.7/en/datetime.html –

Odpowiedz

7

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.)

+3

Chyba warto wspomnieć tutaj: Ułamkowe sekund wsparcie istnieje jako z 5.6.4: http://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html –

+0

Odpowiedz zaktualizowano, aby odnotować wsparcie dla ułamków sekund w TIMESTAMP przy wersji MySQL> = 5.6.4. – spencer7593

4

To jest dokładność, moja przyjaciółka, jeśli umieścisz na przykład (2) jako parametr, dostaniesz datę z Dokładność taka jak: 2015-12-29 00:00:00. , przy okazji, maksymalna wartość to 6.

Powiązane problemy