在 documentdb 中存储日期时间值的最佳方法是什么?
What is the best way to store datetime value in documentdb?
- 是否有在 documentdb 中存储日期时间值的最佳方法?
- 显然,我将以 UTC 和 ISO 8601 格式存储此信息。这有什么问题吗?
- 我应该能够基于此日期时间值进行查询,例如 startDateTime < currentValue 和 currentValue <= endDateTime 等。我应该怎么做才能在这些类型的查询等方面获得最佳性能
在您的情况下,您没有提到的唯一真正的关键是您在 ISO-8601 字符串上具有完全精度 (-1) 的范围索引。
其他一些一般准则:
以规范形式存储所有事件:2016-07-18T01:23:45.678Z
在 zulu/GMT 时间内存储所有内容。每个字符串都以 Z
结尾。永远不要用 +03:00
存储它。确保在 运行 使用该输入查询之前将用户输入的本地时间转换为祖鲁时间。
我还建议您根据自己的情况使用最粗粒度。因此,如果您指的是 2016 年 3 月的整个月份,只需存储 2016-03
,而不要存储 -01T00:00:00.000Z
。这主要适用于您在 运行 查询时使用的文字。假设事件以规范形式存储,那么 2016-07 < 2016-07-18T01:23:45.678Z
为真。此建议主要是为了用户的利益,但不会导致任何性能下降,并且在某些情况下可能会有非常小的改进。
- 是否有在 documentdb 中存储日期时间值的最佳方法?
- 显然,我将以 UTC 和 ISO 8601 格式存储此信息。这有什么问题吗?
- 我应该能够基于此日期时间值进行查询,例如 startDateTime < currentValue 和 currentValue <= endDateTime 等。我应该怎么做才能在这些类型的查询等方面获得最佳性能
在您的情况下,您没有提到的唯一真正的关键是您在 ISO-8601 字符串上具有完全精度 (-1) 的范围索引。
其他一些一般准则:
以规范形式存储所有事件:
2016-07-18T01:23:45.678Z
在 zulu/GMT 时间内存储所有内容。每个字符串都以
Z
结尾。永远不要用+03:00
存储它。确保在 运行 使用该输入查询之前将用户输入的本地时间转换为祖鲁时间。我还建议您根据自己的情况使用最粗粒度。因此,如果您指的是 2016 年 3 月的整个月份,只需存储
2016-03
,而不要存储-01T00:00:00.000Z
。这主要适用于您在 运行 查询时使用的文字。假设事件以规范形式存储,那么2016-07 < 2016-07-18T01:23:45.678Z
为真。此建议主要是为了用户的利益,但不会导致任何性能下降,并且在某些情况下可能会有非常小的改进。