Time 使用UTC存储unix时间戳与字符串

Time 使用UTC存储unix时间戳与字符串,time,utc,epoch,iso8601,Time,Utc,Epoch,Iso8601,今天我与我的工程同事就Fintech中的应用程序和数据库设计进行了一次对话 我们如何处理时间?我们都知道,我们需要存储UTC标准化的日期时间信息。但我们的争论是,是否应该在数据库中存储一个整数,例如,1596507157。这是08/04/2020@UTC凌晨2:12am或2)以字符串形式存储2020-08-04T02:12:37+00:00或2020-08-04T02:12:37.123456789Z unix时间戳的缺点显然不是即时可读的 我在这里寻找一些关于我们是否应该采用这两种方法的设计建

今天我与我的工程同事就Fintech中的应用程序和数据库设计进行了一次对话

我们如何处理时间?我们都知道,我们需要存储UTC标准化的日期时间信息。但我们的争论是,是否应该在数据库中存储一个整数,例如,
1596507157
。这是
08/04/2020@UTC凌晨2:12am
或2)以字符串形式存储
2020-08-04T02:12:37+00:00
2020-08-04T02:12:37.123456789Z

unix时间戳的缺点显然不是即时可读的


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

在我看来,您应该将其存储为整数而不是字符串,其中一个原因很明显,int只需要4字节,而字符串作为ISO 8601需要更多


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

大多数数据库都有datetime数据类型。我猜您的“历元时间戳”是指这个日期时间或时间戳数据类型。对于数据库工程师来说,处理日期时间类型更容易(而且性能更好)。数据库还具有日期时间格式化功能。 (Oracle/MS SQL Server-转换,MySQL-日期\格式,PostgreSQL-转换字符…)

在我看来,存储和处理datetime类型,并使用格式化功能