【发布时间】:2013-09-30 21:59:52
【问题描述】:
目前正在讨论存储日期的最佳方式,并希望有经验的 cmets - 寻找“为什么”而不是“如何”。
场景:
我们正在开发一个允许客户(跨多个时区)创建交易数据的系统。在注册时,客户将指定他们的时区。系统的很大一部分围绕着客户端运行关于交易数据的日期和时间相关报告。
我们已经阅读了许多关于存储事务日期字段的最佳方式的问题和 cmets,大多数人说存储为 UTC,然后执行各种与日期和时间相关的函数来计算各个时区的时间,以便运行选择报告。
我们的问题是 - 为什么要麻烦以 UTC 格式存储 - 以 UTC 格式存储日期有什么好处。从我们的角度来看,我们有客户指定的时区,所以如果我们将日期/时间存储在他们正确的时区中,那么我们每次交易都会运行一次计算 - 此后他们的所有报告都将在没有任何日期转换计算的情况下工作。
由于我们阅读的大多数问题和 cmets 都提到了“如何”,我们认为必须有一些关于“为什么”的东西我们错过了。
因此,总而言之,在我们做出决定之前,我们是否遗漏了一些东西 - 是否有绝对的“必须将日期存储为 UTC”的理由?
感谢您的阅读 - 感谢任何 cmets。
【问题讨论】:
-
客户是否只报告自己的计算?
-
每个客户只能访问他们自己的交易数据,并且没有逻辑上的理由或统计要求来运行多客户合并数据的报告。
-
感谢您的所有 cmets - 很好的辩论 Glavic。在没有绝对理由将日期存储为 UTC 的情况下,根据我们的问题,我们将选择 Labib 的答案作为他的评论“在受控环境中它是完全一样的”。