如何在 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数据建模

mysql如何出查出最近7天,最近30天,最近n天的记录?

mySql 查询当天本周最近7天本月最近30天的语句

如何仅比较 cosmos db 中的日期部分

使用 Mongoid 和 Ruby 查询最近 30 天的日期范围?

按照日期查询最近7天,一个月功能