mysql设置更新sh时间字段时应设置为TIMESTAMP,以实现自动更新时间

版权声明:工作和生活的点点滴滴都应该记录下来! https://blog.csdn.net/u011350541/article/details/81048362

TIMESTAMP和DATETIME的相同点:
两者都可用来表示YYYY-MM-DD HH:MM:SS[.fraction]类型的日期。
TIMESTAMP和DATETIME的不同点:
两者的存储方式不一样

对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。而对于DATETIME,不做任何改变,基本上是原样输入和输出。

记录这个的原因时,我平常喜欢用datetime,但是datetime不能设置当表里的行更新时,自动更新时间,而TIMESTAMP可以。

比如:
1、可以设置为自动更新

CREATE TABLE `test` (
  `id` int(11) NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2、不可以设置为自动更新:

CREATE TABLE `test` (
  `id` int(11) NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

猜你喜欢

转载自blog.csdn.net/u011350541/article/details/81048362