1

我正在寻找最佳实践解决方案。

以stackoverflow和我问的一个问题为例:

我住在以色列,现在时间是:

在此处输入图像描述

我确实在~17:58(现在之前 3 小时)问了一些问题

在此处输入图像描述

然而,它确实显示“3 小时前”显示 UTC 时间。(以色列+2)

所以要么它保存了UTC和我的偏移量

或者它只保存 UTC 并在客户端的 JS 中显示本地时间。

现在我的问题是从数据库的角度来看:

可以通过 JS 命令检测客户端从哪里连接:

new Date().getTimezoneOffset(); //-120

可以像这样存储它:

data  |    UTCTime          | userOffset
----------------------------------------
 ...    2012-12-24 15:36:31       -2

问题

  • 这是存储全球事件(日期时间)的最佳解决方案吗?

  • 在 c# 中有一个DateTimeOffsetStructure 类型,它在其中存储偏移量。Sql server 中是否有任何等效的解决方案?

4

2 回答 2

2

根据这篇文章:你应该始终保持你的日期统一。所以UTC将是最好的选择。

另一方面 - 当你有 UTC 日期时,你可以根据某人的时区轻松地显示它(不仅对作者,而且对每个人)。

于 2012-12-24T19:12:52.103 回答
1

是的。MS SQL Server 2008 引入了datetimeoffset

在这里您可以找到所有日期时间类型

以及如何使用它们。

于 2012-12-24T19:10:22.233 回答