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

上一篇:AWS系列之三 使用EBS


下一篇:vue时间戳转换(10位数)/(13位)