【问题标题】:required query for Cosmosdb timestamp calculationCosmosdb 时间戳计算所需的查询
【发布时间】:2021-06-23 14:05:02
【问题描述】:

我的 cosmosdb 每天都会更新一些数据,看起来像

{
    "Price": {
        "For": "9070.040",
        "From": "700.990"
    },
    "ArticleNumber": "71151004",
    "ArticleNumberPartitionKey": "7115",
    "ForStatus": "ACTIVE",
    "id": "71151004",
    "_rid": "ky1XAMpBiEoDAAAAAAAAAA==",
    "_self": "dbs/ky1XAA==/colls/ky1XAMpBiEo=/docs/ky1XAMpBiEoDAAAAAAAAAA==/",
    "_etag": "\"1200f241-0000-0d00-0000-60c8dad00000\"",
    "_attachments": "attachments/",
    "_ts": 1623775952
}

我的逻辑设置为 24 小时重复。我的问题是,如果在 cosmosdb 中添加了任何新数据,我将无法获取过去 24 小时的数据。我想使用“_ts”来获取最近 24 小时的数据。知道该怎么做吗?

试过了,但没有得到所需的结果。

Int32 unixTimestamp = (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds; 

【问题讨论】:

  • 您是否尝试过一些不起作用的方法? _ts 是 Unix 时间戳,在大多数语言中很容易计算 24 小时前
  • 用我尝试过的问题编辑了问题。

标签: azure-cosmosdb azure-logic-apps


【解决方案1】:

在 .NET 中,以下将获取 24 小时前的 unix 时间:

long hoursAgo24 = DateTimeOffset.UtcNow.AddHours(-24).ToUnixTimeSeconds();

使用该值,您应该能够运行如下查询:

SELECT * FROM c
WHERE c._ts > @hoursAgo24

【讨论】:

  • DateTimeOffset.UtcNow.AddHours(-24).ToUnixTimeSeconds();这在逻辑应用中显示无效
  • 啊,我没有看到你的问题提到逻辑应用程序。您必须使用内置函数来获取值。
猜你喜欢
  • 1970-01-01
  • 2013-04-25
  • 2019-03-21
  • 1970-01-01
  • 1970-01-01
  • 2014-09-19
  • 2015-11-04
  • 1970-01-01
  • 2015-01-26
相关资源
最近更新 更多