MySQL 8 创建表时 datetime 和 timestamp 的默认值

yufei       3 年, 8 月 前       6337

MySQL 8 之前的版本,datetime 字段的默认值可以设置为 0000-00-00 00:00:00

但这在 MySQL 8 中是不允许的,MySQL 8 中的 datetime 的值的范围是 1000-01-01 00:00:009999-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 UTC2038-01-19 03:14:07 UTC

这时候,timestamp 的默认值就和你系统的时区有关系了。在中国,我们一般会设置为东 8 区,那么,默认的时间范围就是 1970-01-01 08:00:012038-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`)
);
目前尚无回复
简单教程 = 简单教程,简单编程
简单教程 是一个关于技术和学习的地方
现在注册
已注册用户请 登入
关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.