如何在日期和时间之间从天蓝色表存储中检索数据

时间:2019-05-07 13:09:20

标签: c# azure-table-storage azure-sdk-.net

我试图使用表中的logdatetime列从表存储中检索2个日期之间的数据,最终得到了

  

{“结果”:[],“ Id”:11,“ Exception”:null,“状态”:5,“ IsCanceled”:false,“ IsCompleted”:true,“ IsCompletedSuccessfully”:true,“ CreationOptions” :0,“ AsyncState”:null,“ IsFaulted”:false}

而不是这两天之间的数据。从日期时间到日期时间对FYI ID进行硬编码。

            CloudTableClient tableClient = storageAccount.CreateCloudTableClient();              

            string partitionFilter = TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, "partitionkey");

            string finalFilter = TableQuery.CombineFilters(
                                    TableQuery.CombineFilters(partitionFilter, TableOperators.And, "logdatetime eq datetime'2019-03-17T19:09:26.0000000Z'"), TableOperators.And, "logdatetime eq datetime'2019-03-17T19:10:16.0000000Z'");

            var query = new TableQuery<TelemetryData>().Where(finalFilter);
            CloudTable table = tableClient.GetTableReference("TableName");
            var result = table.EndExecuteQuerySegmented(query,null);

1 个答案:

答案 0 :(得分:0)

如果要在两个日期时间之间获取结果,则应在查询过滤器中使用运算符le / ge

因此,您应该在以下代码中将运算符eq分别更改为le or ge

string finalFilter = TableQuery.CombineFilters(
                                    TableQuery.CombineFilters(partitionFilter, TableOperators.And, "logdatetime ge datetime'2019-03-17T19:09:26.0000000Z'"), TableOperators.And, "logdatetime le datetime'2019-03-17T19:10:16.0000000Z'");