Я создал несколько таблиц MySQL через phpMyAdmin.Затем я заметил, что в определениях таблиц к некоторым столбцам TIMESTAMP добавлено значение:
TIMESTAMP
timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6)
Что это значит и какое значение следует использовать?
Значение после типа определяет часть доли секунды. Цитировать документацию :
MySQL 8.0 поддерживает доли секунды для TIME, DATETIME и TIMESTAMP значения с точностью до микросекунд (6 цифр): Чтобы определить столбец, который включает в себя доли долей секунд, используйте синтаксис имя-типа (fsp) , где имя-типа равно TIME, DATETIME или TIMESTAMP и fsp - это точность долей секунды. Например: CREATE TABLE t1 (t TIME(3), dt DATETIME(6)); Значение fsp , если оно задано, должно находиться в диапазоне от 0 до 6. Значение 0 означает, что нет дробной части. Если опущено, по умолчанию точность равна 0. (Это отличается от стандартного SQL по умолчанию 6, для совместимость с предыдущими версиями MySQL.)
MySQL 8.0 поддерживает доли секунды для TIME, DATETIME и TIMESTAMP значения с точностью до микросекунд (6 цифр):
TIME
DATETIME
Чтобы определить столбец, который включает в себя доли долей секунд, используйте синтаксис имя-типа (fsp) , где имя-типа равно TIME, DATETIME или TIMESTAMP и fsp - это точность долей секунды. Например:
CREATE TABLE t1 (t TIME(3), dt DATETIME(6));
Значение fsp , если оно задано, должно находиться в диапазоне от 0 до 6. Значение 0 означает, что нет дробной части. Если опущено, по умолчанию точность равна 0. (Это отличается от стандартного SQL по умолчанию 6, для совместимость с предыдущими версиями MySQL.)
Поэтому, чтобы определить столбец отметки времени с точностью до секунды, вы должны указать ненулевое значение.
Этот синтаксис предназначен для точности с долей секунды, см. Справочное руководство:
https://dev.mysql.com/doc/refman/8.0/en/fractional-seconds.html
В MySQL 8.0 есть поддержка долей секунд для значений TIME, DATETIME и TIMESTAMP с точностью до микросекунд(6 цифр) точность