一.存储类型
msql的5种时间类型:DATETIME、 TIMESTAMP、DATE、TIME、YEAR
外加 INT
日期时间类型 | 占用空间 | 日期格式 | 最小值 | 最大值 |
---|---|---|---|---|
DATETIME | 8 bytes | YYYY-MM-DD HH:MM:SS | 1000-01-01 00:00:00 | 9999-12-31 23:59:59 |
TIMESTAMP | 4 bytes | YYYY-MM-DD HH:MM:SS | 1970-01-01 00:00:01.000000 | 2038-01-19 03:14:07.999999 |
int | 4 bytes | unixtime | 0 (1970年) | 2147483647 (2038年) |
int unsigned | 4 bytes | unixtime | 0 (1970年) | 4294967295 (2106年) |
DATE | 4 bytes | YYYY-MM-DD | 1000-01-01 | 9999-12-31 |
TIME | 3 bytes | HH:MM:SS | -838:59:59 | 838:59:59 |
YEAR | 1 bytes | YYYY | 1901 | 2155 |
二.区别
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...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。