MYSQL 存储时间字段类型

╰+哭是因爲堅強的太久メ 2023-05-29 14:26 87阅读 0赞

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:表示每次更新这条数据的时候,该字段都会更新成当前时间

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

  1. create table cmf_record (
  2. id int(11) primary key not null auto_increment,
  3. uid int(11) not null,
  4. created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  5. updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
  6. );

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

发表评论

表情:
评论列表 (有 0 条评论,87人围观)

还没有评论,来说两句吧...

相关阅读

    相关 MySQL 字段类型

    mysql 更改字段类型的问题 1)会...假如字段类型为(int)改为bigint一段时间后..存储的值已经超过了int所限制的大小..再改回来int的类型...值肯定