这是我想要的MySQL表,但重点是datum_en_tijd
CREATE TABLE `navigatie` (
`navigatie_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`navigatie_id`),
`huidige_vraaggroep` varchar(255) NOT NULL,
`vorige_vraaggroep` varchar(255) DEFAULT NULL,
`richting` varchar(255) NOT NULL,
`datum_en_tijd` timestamp(3) NOT NULL,
`schadegeval_id` bigint(20) UNSIGNED DEFAULT NULL,
`claim_id` bigint(20) UNSIGNED DEFAULT NULL,
`gebruiker_id` bigint(20) NOT NULL,
`soort_gebruiker` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;如您所见,TIMESTAMP在(3)中使用了毫秒
每当我试图改变桌子..。在MySQL工作台中,我得到了以下错误:

当我查看DDL时,我会得到一个带有以下查询的新选项卡:
delimiter $$
CREATE TABLE `navigatie` (
`navigatie_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`huidige_vraaggroep` varchar(255) NOT NULL,
`vorige_vraaggroep` varchar(255) DEFAULT NULL,
`richting` varchar(255) NOT NULL,
`datum_en_tijd` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
`schadegeval_id` bigint(20) unsigned DEFAULT NULL,
`claim_id` bigint(20) unsigned DEFAULT NULL,
`gebruiker_id` bigint(20) NOT NULL,
`soort_gebruiker` varchar(255) NOT NULL,
PRIMARY KEY (`navigatie_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8$$请注意
`datum_en_tijd` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),这是个窃听器还是什么?还请注意MySQL WorkBench提供的第8行的语法错误:

我正在运行MySQL 5.6.16
发布于 2014-05-05 10:18:42
不兼容的更改:在非常旧的MySQL版本中(在4.1之前),时间戳数据类型支持显示宽度,而显示宽度从MySQL 4.1开始被忽略。这在MySQL 5.1中是不可取的,在MySQL 5.5中完全删除。当试图在MySQL 5.5或更高版本的服务器上使用时间戳(N)列时,行为上的这些变化可能导致两种问题: 导入在MySQL 5.0或更早的服务器中创建的转储文件(例如,使用mysqldump创建的转储文件)到 一个较新的发行版系列、包含时间戳(N)的CREATE或ALTER语句导致导入失败,语法错误。 若要解决此问题,请在文本编辑器中编辑转储文件,将时间戳(N)的任何实例替换为 导入文件。一定要为此使用纯文本编辑器,而不是文字处理器;否则,结果几乎肯定无法导入到MySQL服务器。
http://dev.mysql.com/doc/refman/5.1/en/timestamp-initialization.html
所以你不能
`datum_en_tijd` timestamp(3)相反,您需要使用
`datum_en_tijd` timestamp 或
`datum_en_tijd` datetime(3)发布于 2014-05-05 10:22:04
是的,时间戳不再需要这一点,我通常只在DEAFAULT或UPDATE CURRENT_TIMESTAMP中使用它,您可能会发现这两者都很有用。
发布于 2019-03-15 07:59:29
一些可供选择的变体:
created_at时间戳(3)非空默认值'1970-01-01 12:34:56‘
mysql_row_created_at时间戳(3)非空缺省CURRENT_TIMESTAMP(3)
created_at时间戳(3)空缺省空
每一个都有自己的优缺点。
不要(永远)使用日期时间,因为它没有相关的时区,它通常只是一个(打包的)字符串。
MySQL时间戳类型物理存储在UTC中(它是增量)。它在会话的活动时区中呈现。
https://stackoverflow.com/questions/23469985
复制相似问题