- 有没有最好的方法将日期时间值存储在documentdb中
- 显然,我将以UTC和ISO8601格式存储这些信息。这有什么问题吗
- 我应该能够基于该日期时间值进行查询,例如startDateTime<currentValue和currentValue<=endDateTime等。我应该怎么做才能在这些类型的查询上获得最大性能等
在您的案例中,唯一没有提到的真正关键是您在ISO-8601字符串上有一个全精度(-1)的范围索引。
其他一些通用指南:
-
以规范形式存储所有事件:
2016-07-18T01:23:45.678Z
-
将所有内容存储在祖鲁/格林尼治标准时间。用
Z
结束每个字符串。切勿将其与+03:00
一起存储。在使用该输入运行查询之前,请确保将用户的本地时间输入转换为zulu时间。 -
我还建议您针对自己的情况使用最粗糙的粒度。因此,如果你指的是2016年3月的整个月份,只需存储
2016-03
,而不存储-01T00:00:00.000Z
。这主要适用于运行查询时使用的文字。假设事件以规范形式存储,则2016-07 < 2016-07-18T01:23:45.678Z
为真。这一建议主要是为了用户的利益,但它不会导致任何性能下降,在某些情况下可能会略有改善。