浅析TIMESTAMP类型

  • 引入
  • 一、DATE\TIME\DATETIME
  • 二、TIMESTAMP
  • 三、TIMESTAMP和DATETIME的区别
  • 四、TIMESTAMP总结

引入

日期与时间是非常重要的信息,在我们的系统中,几乎所有的数据表都用得到。原因是客户需要知道数据的时间标签,从而进行数据查询、统计和处理。因此,日期与时间类型也是我们最常用到的类型之一,今天就来聊一聊日期与时间类型中的TIMESTAMP类型。

在MySQL中提供的常用的日期类型有:DATE、TIME、DATETIME、TIMESTAMP,本文测试场景为MySQL 8.0。

  • YEAR 类型通常用来表示年
  • DATE 类型通常用来表示年、月、日
  • TIME 类型通常用来表示时、分、秒
  • DATETIME 类型通常用来表示年、月、日、时、分、秒
  • TIMESTAMP 类型通常用来表示带时区的年、月、日、时、分、秒
类型 名称 所占字节 最小值 最大值
YEAR 1 1901 2155
TIME 时间 3 -838:59:59 838:59:59
DATE 日期 3 1000-01-01 9999-12-03
DATETIME 日期时间 8 1000-01-01 00:00:00 9999-12-31 23:59:59
TIMESTAMP 日期时间 4 1970-01-01 00:00:00 UTC 2038-01-19 03:14:07UTC
在这几种类型中,只有TIMESTAMP能够与实际时区相对应


一、DATE\TIME\DATETIME

DATE、TIME和DATETIME是经常使用到的3中日期类型,以下在三种类型字段中插入相同日期值,来看看显示效果:

#创建表mysql> CREATE TABLE t (    -> date DATE,    -> time TIME,    -> datetime DATETIME    -> );#插入数据mysql> INSERT INTO t VALUES(    -> now(),now(),now()    -> );#查看结果mysql> SELECT * FROM t;+------------+----------+---------------------+| date       | time     | datetime            |+------------+----------+---------------------+| 2022-07-13 | 09:40:47 | 2022-07-13 09:40:47 |+------------+----------+---------------------+