1

我的文档包含这样的属性

{
    "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财产中消除时间,或者有没有其他方法可以实现这一点?

4

2 回答 2

2

CosmosDB 客户端以ISO8601 格式存储时间戳,这样做的一个很好的理由是它的字典顺序与时间流相匹配。含义 - 您可以对这些字符串进行排序和比较,并按它们所代表的时间对它们进行排序。

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

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

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

于 2018-07-31T06:39:40.167 回答
0
于 2018-07-24T10:07:50.413 回答