V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
kunluanbudang
V2EX  ›  问与答

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

  •  
  •   kunluanbudang · Jul 18, 2018 · 1927 views
    This topic created in 2841 days ago, the information mentioned may be changed or developed.

    实际现象

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

    预期现象

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

    上下文环境(语境)

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