一.存储类型

msql的5种时间类型:DATETIME、 TIMESTAMP、DATE、TIME、YEAR
外加 INT

日期时间类型占用空间日期格式最小值最大值
DATETIME8 bytesYYYY-MM-DD HH:MM:SS1000-01-01 00:00:009999-12-31 23:59:59
TIMESTAMP4 bytesYYYY-MM-DD HH:MM:SS1970-01-01 00:00:01.0000002038-01-19 03:14:07.999999
int4 bytesunixtime0 (1970年)2147483647 (2038年)
int unsigned4 bytesunixtime0 (1970年)4294967295 (2106年)
DATE4 bytesYYYY-MM-DD1000-01-019999-12-31
TIME3 bytesHH:MM:SS-838:59:59838:59:59
YEAR1 bytesYYYY19012155

二.区别

1.DATETIME 和 TIMESTAMP

TIMESTAMP 可以根据时区,展示不同的DATETIME
(同一个TIMESTAMP,在不同的时区展示不同的DATETIME)

2.TIMESTAMP 与 int

底层都是可以支持 unixtime,不同时区展示不同的时间
但 最大值不一样 如果用 int unsigned 可以到 2106年
不过 TIMESTAMP 可视化很好

关于Unix时间戳(Unix timestamp)

时间戳是自 1970 年 1 月 1 日(00:00:00 GMT)以来的秒数。它也被称为 Unix 时间戳(Unix Timestamp)。

Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix系统、类Unix系统中,也在许多其他操作系统中被广泛采用。

参考mysql手册:
https://dev.mysql.com/doc/ref...
https://dev.mysql.com/doc/ref...

谢谢您的观看,欢迎关注我的公众号。

image.png


海生
104 声望33 粉丝

与黑夜里,追求那一抹萤火。