【发布时间】:2019-05-07 13:09:19
【问题描述】:
我正在尝试使用表中的 logdatetime 列从表存储中检索两个日期之间的数据,我最终得到了这个
{"Result":[],"Id":11,"Exception":null,"Status":5,"IsCanceled":false,"IsCompleted":true,"IsCompletedSuccessfully":true,"CreationOptions" :0,"AsyncState":null,"IsFaulted":false}
而不是这 2 天之间的数据。仅供参考 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);
【问题讨论】:
-
我认为查询是错误的,您应该使用 logdatetime ge datetime'2019-03-17T19:09:26.0000000Z' 和 logdatetime le datetime'2019-03-17T19:10:16.0000000Z'要获得这些日期时间之间的范围,日期时间不可能等于两个不同的日期时间
-
这个过滤器有多少条记录?因为您的查询可能很慢
-
谢谢你改成 ge/le 就可以了
标签: c# azure-table-storage azure-sdk-.net