代码之家  ›  专栏  ›  技术社区  ›  GSto

在MySQL数据库中按时存储跨度的最佳方法是什么?

  •  11
  • GSto  · 技术社区  · 16 年前

    我想在mysql数据库中存储一些东西的时间,比如2小时5分10秒。精确到第二是首选,但不是必需的。做这个最好的方法是什么?

    3 回复  |  直到 16 年前
        1
  •  18
  •   Paul Dixon    16 年前

    MySQL数据库 TIME type可以存储从'-838:59:59'到'-838:59:59'-的时间跨度,如果这在您所需的范围内,那么让MySQL以HH:MM:s s形式本机呈现这些跨度将非常有用,然后使用它。

    否则,我只使用整数类型来表示秒数。

        2
  •  3
  •   Robert Greiner    16 年前

    我喜欢把东西作为基本单位存储在数据库中。这样我就可以可靠而准确地转换成我以后想要的任何东西。

    用这种方法你唯一要担心的就是降低精度。如果您存储的是越野旅行的距离,那么英寸或厘米可能不是您想要的。

    在你的情况下,我会把跨度存储为秒或毫秒,然后从那里开始。

        3
  •  1
  •   Pekka    16 年前

    正如Andrew所说,一个带秒的整数字段可能已经足够了。

    如果数据是可用的,并且存储它是有意义的,我将把数据保存在两个mySQL时间戳中,包括开始时间和结束时间(也可能很适合以后的审计),并使用 DATE_DIFF() 获取实际持续时间。