我试图使用表中的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);
答案 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'");