MySQL5.7 中, 相比于使用 UNSIGNED INT 保存时间戳而言,使用内置的 TIMESTAMP,有什么好处?

2018-07-18 14:31:32 +08:00
 kunluanbudang

实际现象

一直使用 INT 来保存时间戳, 但是知道 TIMESTAMP 这个东西,不知道这个东西有什么明显的好处(相对而言), 至少目前没有感受到,它对自己的好处。

预期现象

想知道,TIMESTAMP 相对 UNSIGNED INT 保存时间戳,有什么明显的好处 /优势 /便利的地方?

上下文环境(语境)

  1. MySQL5.7
  2. Linux
  3. Python3.6
  4. 一直都是使用 INT 来保存时间戳, 然后在应用层代码转化
1502 次点击
所在节点    问与答
8 条回复
torment5524
2018-07-18 14:51:41 +08:00
初用 mysql,不过是 5.6
1、timestamp 可以通过设置默认值和自动更新,在 insert 和 update 的时候自动维护,不需要应用层赋值
2、再就是 group by 相关涉及到分天分小时等类似统计数据的 sql 中,int 需要多一步 from_unixtime。。。
nullen
2018-07-18 15:03:16 +08:00
有内建类型永远优先使用内建类型。
laxenade
2018-07-18 15:09:03 +08:00
Timestamp 跟着时区走,取决于你用 timestamp 来干嘛,有可能带来方便有可能带来几天的 debug 时间
wps353
2018-07-18 15:51:55 +08:00
1、timestamp 与时区有关,是内置类型无需转换。
2、在存储上,timestamp 比 int 多了那么一点儿,可以忽略不计。
3、如果楼主业务对时区没要求的话,那么直接用 datetime 吧。
vibbow
2018-07-19 00:54:03 +08:00
@laxenade
@wps353
timestamp 不是时区无关的么?无论在哪个时区,只要是同一时刻生成的 timestamp 都应该是一致的呀。
难道 mysql 里是有关的?
wps353
2018-07-19 09:44:58 +08:00
和 MySQL 的 time_zone 这个系统变量有关。
@vibbow
vibbow
2018-07-19 14:38:50 +08:00
@wps353 所以 mysql 里不同时区的 timestamp 的值不一样??!! WTF ??!!
wps353
2018-07-19 16:10:23 +08:00
@vibbow
你试试就清楚了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/471977

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX