Как получить данные из хранилища таблицы Azure между датой и временем - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь получить данные между двумя датами из хранилища таблиц, используя столбец logdatetime в моей таблице, и в итоге получаю

{"Result": [], "Id": 11,"Исключение": нулевой, "Статус": 5, "IsCanceled" ложь "IsCompleted": правда, "IsCompletedSuccessfully": правда, "CreationOptions": 0, "AsyncState": нулевая "IsFaulted": ложные}

вместо данных между этими 2 днями.FYI идентификатор в жестком коде, от даты и времени до даты.

            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 голосов
/ 08 мая 2019

Если вы хотите получить результаты между двумя датами и временем, вы должны использовать операторы 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'");
...