在documentdb中存储日期时间值的最佳方法是什么?

时间:2016-07-21 07:15:46

标签: datetime timezone azure-cosmosdb

  1. 有没有一种在documentdb中存储日期时间值的最佳方法?
  2. 显然,我将以UTC和ISO 8601格式存储此信息。这有什么问题吗?
  3. 我应该能够根据这个日期时间值进行查询,例如startDateTime< currentValue和currentValue< = endDateTime等。我该怎么做才能在这些类型的查询等方面获得最大的性能。

1 个答案:

答案 0 :(得分:1)

在你的情况下,你没有提到的唯一真正的关键是你在ISO-8601字符串上有一个全精度(-1)的范围索引。

其他一般指导原则:

  • 以规范形式存储所有活动:2016-07-18T01:23:45.678Z

  • 将所有内容存储在zulu / GMT时间内。用Z结束每个字符串。切勿使用+03:00存储它。在使用该输入运行查询之前,请确保将本地时间输入从用户转移到zulu时间。

  • 我还建议您根据自己的情况使用最粗粒度。因此,如果您指的是整个2016年3月,只需将2016-03存储在-01T00:00:00.000Z之后。这主要适用于运行查询时使用的文字。假设事件以规范形式存储,而2016-07 < 2016-07-18T01:23:45.678Z为真。此建议主要是为了用户的利益,但它不会导致任何性能下降,并且在某些情况下可能会略微改善。