MySQL之时间戳(DateTime和TimeStamp)
文章目录:
- MySQL之时间戳(DateTime和TimeStamp)
- 一、DateTime类型
- 二、TimeStamp类型
- 三、DateTime和TimeStamp的区别
当插入数据时,需要自动记录一个时间时候,现有两种主流的解决方案。
一、DateTime类型
建立一个表名为auto_time
的表,加入一个自增长的id
属性和datetime
属性。
create table auto_time(id int key auto_increment,time datetime);
再使用insert命令继续向datetime
属性插入数据
insert into auto_time(time) values(now());
打印出auto_time
的信息,即可得到YYYY-MM-DD HH:MM:SS的时间信息
二、TimeStamp类型
TimeStamp的使用方法和DateTime基本一致。
依旧使用auto_time
建立,使用alter table
命令加入TimeStamp
字段。
alter table auto_time add column time1 timestamp;
使用insert
命令加入属性。
insert into auto_time(time1) values(now());
最后使用select
命令查看内容
三、DateTime和TimeStamp的区别
比较 | DateTime | TimeStamp |
---|---|---|
储存空间 | 8 byte | 4 byte |
时间范围 | 1000-01-01 00:00:00到9999-12-31 23:59:59 | 1970-01-01 00:00:01 UTC到2038-01-19 03:14:07 UTC |
跨时区 | 无 | 根据时区自动转换 |
现同时输入数据进行比较
insert into auto_time(time,time1) values(now(),now());
现在使用set
命令将时区更改为UTC+0:00,再查询auto_time
表
set time_zone='+0:00';
从图中可以看出datetime
的时间并没有发生变化,而timestamp
的进行了自动的转化。