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

 

posted @ 2021-11-13 09:37  小菠萝测试笔记  阅读(2007)  评论(0编辑  收藏  举报