【问题标题】:Storing unix timestamp versus string with UTC使用 UTC 存储 unix 时间戳与字符串
【发布时间】:2020-11-24 02:30:47
【问题描述】:

我今天与我的工程同事讨论了金融科技中的应用程序和数据库设计。

我们如何处理时间?我们都知道,我们需要存储以 UTC 规范化的日期时间信息。但我们的争论是我们是否应该存储 1) unix 纪元时间戳,它是我们数据库中的一个整数,例如,1596507157。这是08/04/2020 @ 2:12am UTC或2)以ISO 8601格式存储在字符串2020-08-04T02:12:37+00:002020-08-04T02:12:37.123456789Z

unix 时间戳的缺点显然不是立即人类可读的。

我在这里寻找一些关于我们是否应该采用任何一种方法的设计建议。

【问题讨论】:

    标签: time utc epoch iso8601


    【解决方案1】:

    在我看来,你应该将它存储为整数而不是字符串,原因之一是显而易见的,int 只需要 4 个字节,而 ISO 8601 的字符串需要更多。

    你看到的缺点,它不会影响后端,它只是一个弥补(仅在用户视图中需要)。

    【讨论】:

      【解决方案2】:

      大多数数据库都有日期时间数据类型。我猜你的“纪元时间戳”是指这个日期时间或时间戳数据类型。为数据库工程师处理日期时间类型更容易(并且性能更好)。和数据库也有日期时间格式化功能。 (Oracle/MS SQL Server - 转换,MySQL - date_format,PostgreSQL - to_char ...)

      在我看来,使用日期时间类型进行存储和处理,并使用格式化功能。

      【讨论】:

        猜你喜欢
        • 2019-10-29
        • 1970-01-01
        • 2014-11-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-22
        • 2017-02-15
        相关资源
        最近更新 更多