V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
kunluanbudang
V2EX  ›  问与答

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

  •  
  •   kunluanbudang · 2018-07-18 14:31:32 +08:00 · 1490 次点击
    这是一个创建于 2080 天前的主题,其中的信息可能已经有所发展或是发生改变。

    实际现象

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

    预期现象

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

    上下文环境(语境)

    1. MySQL5.7
    2. Linux
    3. Python3.6
    4. 一直都是使用 INT 来保存时间戳, 然后在应用层代码转化
    8 条回复    2018-07-19 16:10:23 +08:00
    torment5524
        1
    torment5524  
       2018-07-18 14:51:41 +08:00
    初用 mysql,不过是 5.6
    1、timestamp 可以通过设置默认值和自动更新,在 insert 和 update 的时候自动维护,不需要应用层赋值
    2、再就是 group by 相关涉及到分天分小时等类似统计数据的 sql 中,int 需要多一步 from_unixtime。。。
    nullen
        2
    nullen  
       2018-07-18 15:03:16 +08:00
    有内建类型永远优先使用内建类型。
    laxenade
        3
    laxenade  
       2018-07-18 15:09:03 +08:00 via Android
    Timestamp 跟着时区走,取决于你用 timestamp 来干嘛,有可能带来方便有可能带来几天的 debug 时间
    wps353
        4
    wps353  
       2018-07-18 15:51:55 +08:00
    1、timestamp 与时区有关,是内置类型无需转换。
    2、在存储上,timestamp 比 int 多了那么一点儿,可以忽略不计。
    3、如果楼主业务对时区没要求的话,那么直接用 datetime 吧。
    vibbow
        5
    vibbow  
       2018-07-19 00:54:03 +08:00
    @laxenade
    @wps353
    timestamp 不是时区无关的么?无论在哪个时区,只要是同一时刻生成的 timestamp 都应该是一致的呀。
    难道 mysql 里是有关的?
    wps353
        6
    wps353  
       2018-07-19 09:44:58 +08:00
    和 MySQL 的 time_zone 这个系统变量有关。
    @vibbow
    vibbow
        7
    vibbow  
       2018-07-19 14:38:50 +08:00
    @wps353 所以 mysql 里不同时区的 timestamp 的值不一样??!! WTF ??!!
    wps353
        8
    wps353  
       2018-07-19 16:10:23 +08:00
    @vibbow
    你试试就清楚了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5488 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 08:00 · PVG 16:00 · LAX 01:00 · JFK 04:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.