Mysql - 如何存储 10位、13位的 unix 时间戳?
背景
- 前面有讲过存日期时间可以用 datetime、timestamp 类型:https://www.cnblogs.com/poloyy/p/15546735.html
- 格式是: YYYY-MM-DD hh:mm:ss
- 但假设我不想存具体的日期时间,想存一个 unix 时间戳呢?
啥是 unix 时间戳
- 可以去这个网站看看就知道了,http://tool.chinaz.com/Tools/unixtime.aspx
- 自 1970 年 1 月 1 日协调世界时 (UTC) 成立以来经过的秒数
- 其实就是常见的 10 位秒级时间戳(1636727443)和 13 位毫秒级时间戳(1636727443123)
灵魂拷问
- 有很多接口响应可能会返回这样一个时间戳,让前端自己去转换
- 那对于在 Mysql 中,如何存储这样的时间戳呢?
如何存储 10 位秒级时间戳
- 直接用 int 类型存
- 使用普通的 int 类型来存储 Unix 时间是最简单的方法
- 使用 int,可以确定存储的数字可以快速可靠地插入表中
如何存储 13 位毫秒级时间戳
不可以使用 int 类型存,需要用 varchar 或者 bigint
为什么不能用 int 存
- 因为 13 位时间戳超出了 int 的存储范围
- 这就要聊一聊 Mysql 支持的整数类型的存储字节数和范围了
https://www.cnblogs.com/poloyy/p/15546827.html