Я создал несколько таблиц с типом данных timestamp. Когда я описываю несколько столбцов временной отметки, по умолчанию отображаются current_timestamp
, а несколько столбцов временной отметки по умолчанию отображаются 0000-00-00 00:00:00.000000
. Я думал, что столбец timestamp будет только по умолчанию current_timestamp
. Я также понимаю, что если мы дадим те даты, которые не указаны в заданном диапазоне от документации, он сохранит значения как 0000-00-00 00:00:00.000000
. Но как он показывает различное значение по умолчанию в выводе таблицы desc?MySQL/MariaDB timestamp, datetime datatypes
desc screen;
+-----------------+--------------+------+-----+----------------------------
| Field | Type | Null | Key | Default
+-----------------+--------------+------+-----+----------------------------
| SCREEN_ID | smallint(6) | NO | PRI | NULL
| SCREEN_NAME | varchar(100) | NO | UNI | NULL
| CREATED_BY | varchar(30) | NO | | NULL
| CREATED_DATE | timestamp(6) | NO | | CURRENT_TIMESTAMP(6)
| UPDATED_BY | varchar(30) | NO | | NULL
| UPDATED_DATE | timestamp(6) | NO | | 0000-00-00 00:00:00.000000
| SYSCREATED_DATE | timestamp(6) | NO | | CURRENT_TIMESTAMP(6)
| SYSUPDATED_DATE | timestamp(6) | NO | | CURRENT_TIMESTAMP(6)
+-----------------+--------------+------+-----+----------------------------
Ниже DDL я использовал для создания таблицы
CREATE TABLE SCREEN (
SCREEN_ID SMALLINT AUTO_INCREMENT NOT NULL,
SCREEN_NAME VARCHAR(100),
CREATED_BY VARCHAR(30),
CREATED_DATE TIMESTAMP(6),
UPDATED_BY VARCHAR(30),
UPDATED_DATE TIMESTAMP(6),
SYSCREATED_DATE TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP,
SYSUPDATED_DATE TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT SCREEN_PK PRIMARY KEY(SCREEN_ID)
);
Пожалуйста, помогите мне. Я планирую изменить все столбцы timestamp на datetime из-за этого несоответствия. Целесообразно?
Из любопытства, что означает 'TIMESTAMP (6)'? – Mjh
У меня вопрос. Мы используем эти столбцы для хранения метки времени при вставке новой строки или обновлении существующей строки. Он сохраняет значение метки времени в этом формате. 2015-08-03 19: 49: 43.187081 – user6404269
Мне интересно, почему у вас есть '(6)' рядом с типом поля. Зачем вам отрезать длину дисплея? Для этого должна быть причина. – Mjh