MYSQL 存储时间字段类型

MYSQL时间数据类型对比

MYSQL有5种表示时间值的日期和时间类型,分别为 DATE,TIME,YEAR,DATETIME,TIMESTAMP。(TIMESTAMP类型有专有的自动更新特性)
在这里插入图片描述

如何选择?

1.只需要年份,则选用 YEAR 类型
2.只需要年月日,选用 DATE 类型
3.对时间精度有要求(需要年月日,时分秒)
IF 存储的时间不在1970-2037这个范围
则选用 DATETIME 类型
ELSE
选用 TIMESTAMP 类型

一般而言,没有特别要求的情况下,总是会选用 TIMESTAMP 类型存储时间

TIMESTAMP的优势

与DATETIME相比,占用更少的字节
与其他三者相比,拥有更好的精确度
而且TIMESTAMP有‘自动更新’属性。

timestamp小技巧

timestamp有两个属性,分别是CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP

CURRENT_TIMESTAMP :表示当插入数据的时候,该字段默认值为当前时间
ON UPDATE CURRENT_TIMESTAMP:表示每次更新这条数据的时候,该字段都会更新成当前时间

一般我们在创建数据表的时候,会创建一个创建时间字段(用于查询该条数据的创建时间)和一个修改时间字段(用于查询该条数据的最后一次修改时间)。如下

create table cmf_record (
	id int(11) primary key not null auto_increment,
	uid int(11) not null,
	created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
	updated_at TIMESTAMP  DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

指定created_at (创建时间字段)属性为 CURRENT_TIMESTAMP ,则在插入数据的时候,自动为该条数据生成创建时间。
指定updated_at (修改时间字段)属性为 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP。则在插入数据的时候,会将当前时间作为修改时间插入该条数据,在修改数据的时候,会自动更新updated_at (修改时间字段)。

发布了70 篇原创文章 · 获赞 154 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/weixin_39815001/article/details/102940907