在documentdb中存储日期时间值的最佳方法是什么? 在documentdb中是否有存储日期时间值的最佳方法 显然,我将以UTC和ISO 8601格式存储此信息。这有什么问题吗 我应该能够根据这个日期时间值进行查询,比如startDateTime

在documentdb中存储日期时间值的最佳方法是什么? 在documentdb中是否有存储日期时间值的最佳方法 显然,我将以UTC和ISO 8601格式存储此信息。这有什么问题吗 我应该能够根据这个日期时间值进行查询,比如startDateTime,datetime,timezone,azure-cosmosdb,Datetime,Timezone,Azure Cosmosdb,在您的例子中,您没有提到的唯一真正的关键是您在ISO-8601字符串上有一个全精度的范围索引(-1) 其他一些一般准则: 以规范格式存储所有事件:2016-07-18T01:23:45.678Z 在祖鲁/格林威治标准时间储存所有物品。用Z结束每个字符串。切勿将其与+03:00一起存储。在使用该输入运行查询之前,请确保将本地时间输入从用户转移到祖鲁时间 我还建议您针对您的情况使用最粗的粒度。因此,如果您指的是2016年3月的整个月份,只需存储2016-03,省去-01T00:00:00.000Z

在您的例子中,您没有提到的唯一真正的关键是您在ISO-8601字符串上有一个全精度的范围索引(-1)

其他一些一般准则:

  • 以规范格式存储所有事件:
    2016-07-18T01:23:45.678Z

  • 在祖鲁/格林威治标准时间储存所有物品。用
    Z
    结束每个字符串。切勿将其与
    +03:00
    一起存储。在使用该输入运行查询之前,请确保将本地时间输入从用户转移到祖鲁时间

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


在您的例子中,您唯一没有提到的真正关键是ISO-8601字符串上有一个全精度范围索引(-1)

其他一些一般准则:

  • 以规范格式存储所有事件:
    2016-07-18T01:23:45.678Z

  • 在祖鲁/格林威治标准时间储存所有物品。用
    Z
    结束每个字符串。切勿将其与
    +03:00
    一起存储。在使用该输入运行查询之前,请确保将本地时间输入从用户转移到祖鲁时间

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


如果我不以UTC格式“2016-07-18T01:23:45.678Z”存储,会发生什么?例如,本地或UTC时间的“2016-07-18T01:23:45.678”格式?如果将其存储在本地时区,则不会按绝对时间排序。如果所有东西都在同一时区,这可能会起作用,但一般来说,最好将其存储在祖鲁时间,并在到达客户时转换到当地时间。如果我不以UTC格式“2016-07-18T01:23:45.678Z”存储,会发生什么?例如,本地或UTC时间的“2016-07-18T01:23:45.678”格式?如果将其存储在本地时区,则不会按绝对时间排序。如果所有东西都在同一个时区,这可能会起作用,但一般来说,最好将其存储在祖鲁时间,并在到达客户机后转换到本地时间。