gpt4 book ai didi

azure - 在 Cosmos Db 中查询文档进行日期比较时如何截断时间

转载 作者:行者123 更新时间:2023-12-03 01:42:37 27 4
gpt4 key购买 nike

我的文档包含这样的属性

{
"id":"1bd13f8f-b56a-48cb-9b49-7fc4d88beeac",
"name":"Sam",
"createdOnDateTime": "2018-07-23T12:47:42.6407069Z"
}

我想根据存储为字符串的 createdOnDateTime 查询文档。

查询例如-

SELECT * FROM c where c.createdOnDateTime>='2018-07-23' AND c.createdOnDateTime<='2018-07-23'

这将返回当天创建的所有文档。

我从日期选择器中提供日期值,该选择器仅提供日期而没有时间,因此,它在比较日期时给我带来了问题。

是否有任何方法可以从 createdOnDateTime 属性中删除时间,或者是否有其他方法可以实现此目的?

最佳答案

CosmosDB 客户端将时间戳存储在 ISO8601 format 中这样做的充分理由之一是它的 lexicographical order与时间的流动相契合。含义 - 您可以对这些字符串进行排序和比较,并按它们代表的时间对它们进行排序。

所以在这种情况下,您不需要删除时间组件,只需修改传入的参数即可获得您需要的结果。如果您想要2018-07-23整个日期的所有条目,那么您可以使用查询:

SELECT * FROM c 
WHERE c.createdOnDateTime >= '2018-07-23'
AND c.createdOnDateTime < '2018-07-24'

请注意,此查询可以使用 createdOnDateTime 上的 RANGE 索引。

关于azure - 在 Cosmos Db 中查询文档进行日期比较时如何截断时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51495594/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com