Установка столбца как метки времени в MySQL workbench?

Это может быть действительно элементарный вопрос, но я никогда не создается таблица с TIMESTAMP() раньше, и я запутался в том, что ставить в качестве параметров. Например, здесь:

enter image description here

Я просто случайно поставил TIMESTAMP(20), а как 20 в качестве параметра означают здесь? Что нужно положить сюда?

я погуглил вопрос, но на самом деле ничего такого не придумал... В любом случае я новичок в sql, поэтому любая помощь будет очень признательна, спасибо ты!!

4 ответов


редактировать

начиная с 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
) 

то, что происходит в parens после типа данных, зависит от типа данных, но для некоторых типов данных это модификатор длины.

для некоторых типов данных модификатор length влияет на максимальную длину значений, которые могут быть сохранены. Например, VARCHAR(20) позволяет до 20 символы для хранения. И DECIMAL(10,6) позволяет использовать числовые значения с четырьмя цифрами до десятичной точки и шесть после, а также эффективный диапазон от -9999.999999 до 9999.999999.

для других типов модификатор длины не влияет на диапазон значений, которые могут быть сохранены. Например, INT(4) и INT(10) как целое, и как можно хранить весь диапазон значений для целочисленных данных.

то, что этот модификатор длины делает в этом случае, просто информационный. Он по существу определяет рекомендуемую ширину экрана. Клиент может использовать это, чтобы определить, сколько места зарезервировать в строке для отображения значений из столбца. Клиент не обязан это делать, но эта информация доступна.

редактировать

модификатор длины больше не принимается для TIMESTAMP тип данных. (Если вы используете действительно старую версию MySQL, и она принята, это будет игнорируемый.)


вот точность мой друг, если вы поставите, например (2) в качестве параметра, вы получите дату с точностью: 2015-12-29 00:00:00.00 кстати, максимальное значение-6.


этот синтаксис, кажется, из старой версии MySQL до 4.1. Он был полностью удален из 5.5 https://dev.mysql.com/doc/refman/5.0/en/upgrading-from-previous-series.html

поэтому нет смысла указывать ширину здесь, так как ее можно игнорировать. Какую версию вы используете?


MySQL 5.7, похоже, поддерживает этот синтаксис. Переданный аргумент-это точность. Метка времени (3) позволит точность миллисекунды. 6 Самое высокое количество позволенной точности.

ссылка:http://dev.mysql.com/doc/refman/5.7/en/datetime.html