MySQL 8 之前的版本,datetime
字段的默认值可以设置为 0000-00-00 00:00:00
。
但这在 MySQL 8 中是不允许的,MySQL 8 中的 datetime
的值的范围是 1000-01-01 00:00:00
到 9999-12-31 23:59:59
之间。
因此,在 MySQL 8 中,我们可以将 datetime
的默认值设置为 1000-01-01 00:00:00
例如
CREATE TABLE `test`.`test` ( `id` int NOT NULL AUTO_INCREMENT, `created_at` datetime NOT NULL DEFAULT '1000-01-01 00:00:00', PRIMARY KEY (`id`) );
同理,如果在 MySQL 8 中,timestamp
默认赋值 0000-00-00 00:00:00
也是错误的。它的值的范围是 1970-01-01 00:00:01
UTC 到 2038-01-19 03:14:07
UTC。
这时候,timestamp
的默认值就和你系统的时区有关系了。在中国,我们一般会设置为东 8 区,那么,默认的时间范围就是 1970-01-01 08:00:01
到 2038-01-19 03:14:07
。
我以前百思不得其解的 1970-01-01 00:00:01
不能用终于有结果了。
例如
CREATE TABLE `test`.`test2` ( `id` int NOT NULL AUTO_INCREMENT, `updated_at` timestamp NOT NULL DEFAULT '1970-01-01 08:00:01', PRIMARY KEY (`id`) );
目前尚无回复