如何在 CosmosDB 上查询最近 30 天?
Posted
技术标签:
【中文标题】如何在 CosmosDB 上查询最近 30 天?【英文标题】:How do I query the last 30 days on CosmosDB? 【发布时间】:2022-01-20 13:49:03 【问题描述】:我希望检索过去 30 天的记录。
我怎样才能修改下面的partitionID
,使其不会带回任何超过 30 天的记录?
SELECT * FROM c WHERE c.partitionID LIKE '%-2021-12-17%'
【问题讨论】:
我的 partitionID 值看起来像这样048-2021-08-25T01
【参考方案1】:
如果您有一列包含 ISO 8601 格式的日期时间,例如:
"id": "test",
"partitionKey": "a",
"date": "2021-11-01T20:36:17.1234567Z"
您可以使用Date and time functions查询:
SELECT * FROM c
WHERE DateTimeDiff("day", c.date, GetCurrentDateTime()) <= 30
如果您想要某个时间段内的所有项目(此处以 2021 年 12 月的所有项目为例):
SELECT * FROM c
WHERE c.date >= '2021-12-01T00:00:00.0000000Z' AND c.date < '2021-12-31T00:00:00.0000000Z'
【讨论】:
太棒了!如果 SystemTime 的值为2021-8-27 06:01:17
,它会与 SystemTime 一起使用吗
它不会像我认为的那样工作;文档说:“UTC 日期和时间 ISO 8601 字符串值,格式为 YYYY-MM-DDThh:mm:ss.fffffffZ”。
两个日期之间的范围如何?例如 SELECT * FROM c WHERE c.partitionID LIKE '%-2021-10-17%' >= '%-2021-12-17%'
@noobdev123 查看编辑
谢谢你 :)以上是关于如何在 CosmosDB 上查询最近 30 天?的主要内容,如果未能解决你的问题,请参考以下文章
Azure CosmosDB (13) CosmosDB数据建模