【问题标题】:How do I query the last 30 days on CosmosDB?如何在 CosmosDB 上查询最近 30 天?
【发布时间】:2022-01-20 13:49:03
【问题描述】:

我希望检索过去 30 天的记录。

我怎样才能修改下面的partitionID,使其不会带回任何超过 30 天的记录?

SELECT * FROM c WHERE c.partitionID LIKE '%-2021-12-17%'

【问题讨论】:

  • 我的 partitionID 值看起来像这样048-2021-08-25T01

标签: azure azure-cosmosdb azure-cosmosdb-sqlapi


【解决方案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 查看编辑
  • 谢谢你 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-18
  • 2016-08-20
  • 2011-12-08
  • 2022-01-22
  • 2015-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多