TIMESTAMP和DATETIME的相同点:
1> 两者都可用来表示YYYY-MM-DD HH:MM:SS[.fraction]类型的日期。
TIMESTAMP和DATETIME的不同点:
1> 两者的存储方式不一样
对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。
而对于DATETIME,不做任何改变,基本上是原样输入和输出。
接下来测试一下
CREATE TABLE `time_` (
`timestamp_` timestamp NULL DEFAULT NULL,
`datatime` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `time_` VALUES ('2019-09-26 10:30:51', '2019-09-26 11:30:51');
数据库修改修改时区:(这种方式修改时区会再重启MySQL后失效,可以直接修改my.cnf文件或者在项目配置文件数据库地址自己添加时区信息)
select * from time_;
set global time_zone = '+7:00'; ##修改mysql全局时区为北京时间,即我们所在的东8区
set time_zone = '+7:00'; ##修改当前会话时区
flush privileges; #立即生效
show variables LIKE '%time_zone'; #显示当前时区信息
SELECT now();显示当前系统时间
select * from time_;