繁体   English   中英

Azure Cosmos DB 日期查询作为字符串不起作用

[英]Azure Cosmos DB Date Query as string not working

基本上它只是根据机器 ID 和日期时间在 azure cosmos db 中查询获取操作。 我真的坚持基于日期时间在 cosmos 中查询。我能够运行相同的查询并在 azure 门户网站上获得结果。但是代码方面我没有得到结果。

更多细节:

SELECT *
FROM c
WHERE c.IoTHub.ConnectionDeviceId IN ('hub20') AND c.MACHINE_ID = 'TAP_20' AND (c.EventEnqueuedUtcTime >= '2021-02-03T10:40:42.5180000Z' AND c.EventEnqueuedUtcTime <= '2021-02-03T10:40:42.5180000Z')
QueryDefinition queryDefinition = new QueryDefinition(sqlQueryText);
FeedIterator<dynamic> queryResultSetIterator = container.GetItemQueryIterator<dynamic>(queryDefinition);
FeedResponse<dynamic> currentResultSet;
while (queryResultSetIterator.HasMoreResults)
{
    currentResultSet = await queryResultSetIterator.ReadNextAsync();
}     

我能够获取直到 MACHINE_ID 的所有数据,但只要我应用 c.EventEnqueuedUtcTime 条件。 我无法获取数据。我尝试了所有可能的解决方案。c.EventEnqueuedUtcTime 值我们作为字符串获取,并且在数据库中它被保存为字符串,如图所示。

{
    "MESSAGE_GROUP_ID": "24c9e3ad-4fd6-4abb-88d8-eafb9060884e",
    "TYPE": "Gauges",
    "MACHINE_ID": "TAP_20",
    "Gauges": {
        "OVERRIDE": 85.8
    },
    "EventProcessedUtcTime": "2021-02-03T10:41:48.0493615Z",
    "PartitionId": 3,
    "EventEnqueuedUtcTime": "2021-02-03T10:40:42.5180000Z",
    "IoTHub": {
        "MessageId": "498b7df3-55e6-4b3f-a18e-698fd991e526",
        "CorrelationId": null,
        "ConnectionDeviceId": "hub20",
        "ConnectionDeviceGenerationId": "637332663098221999",
        "EnqueuedTime": "2021-02-03T10:41:11.2570000Z"
    },
    "id": "498b7df3-55e6-4b3f-a18e-698fd991e526"
}

在此处输入图像描述

任何线索将不胜感激。 谢谢

感谢user2911592分享解决步骤。 将它们作为答案发布以帮助其他社区成员。

最初使用转换错误地保存了查询/代码。 修复相同的问题解决了这个问题。

user2911592 :随时添加更多详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM