Ответ 1
Похоже, вам нужно будет использовать что-то вроде ниже, чтобы отфильтровать временную метку. Пожалуйста, посмотрите здесь Filtering on DateTime Properties .
Timestamp ge datetime'2008-07-10T00: 00: 00Z '
это моя первая работа с Azure Storage Explorer, и мне нужно прочитать некоторые журналы, которые сохраняются в Azure Tables. Моя версия - 4
Я прочитал эту ссылку http://msdn.microsoft.com/library/azure/ff683669.aspx, но не существует объяснений для работы со столбцом Timestamp.
В принципе, я хочу видеть журналы с определенной даты.
Я попробовал запрос:
Timestamp ge '4/10/2013'
Timestamp ge 4/10/2013
Timestamp gt '4/10/2013'
Timestamp gt 4/10/2013
И результат будет только сообщением об ошибке.
При обработке этого запроса произошла ошибка.
Похоже, вам нужно будет использовать что-то вроде ниже, чтобы отфильтровать временную метку. Пожалуйста, посмотрите здесь Filtering on DateTime Properties .
Timestamp ge datetime'2008-07-10T00: 00: 00Z '
Вот как вы могли это сделать:
var dateFilter = "(PartitionKey ge '0" + StartTime.Ticks + "')" + "and (PartitionKey le '0" + EndTime.Ticks + "')";
StartTime
и EndTime
будет вашим диапазоном дат. Помните, что вы можете запрашивать только PartitionKey, потому что он имеет индекс.
Это должно работать
Timestamp ge datetime'2013-10-06T00:00:00'
Используйте TableQuery.GenerateFilterConditionForDate()
чтобы задать параметры запроса на основе даты и времени для таблиц хранения таблиц Azure:
using Microsoft.WindowsAzure.Storage.Table;
// Input parameters to your method, etc:
DateTimeOffset from;
DateTimeOffset until;
string DateFromFilter = TableQuery.GenerateFilterConditionForDate("Date", QueryComparisons.GreaterThanOrEqual, from);
string DateUntilFilter = TableQuery.GenerateFilterConditionForDate("Date", QueryComparisons.LessThanOrEqual, until);
finalFilter
- это просто строка, которую вы создаете с помощью методов TableQuery, таких как CombineFilters()
:
finalFilter = TableQuery.CombineFilters(finalFilter, TableOperators.And, DateFromFilter);
finalFilter = TableQuery.CombineFilters(finalFilter, TableOperators.And, DateUntilFilter);
TableQuery<MyAzureObject> query = new TableQuery<MyAzureObject>().Where(finalFilter);
Если вы хотите отфильтровать запрос в диапазоне дат, используйте:
Timestamp ge datetime'2017-07-21T20:07:35.000Z' and Timestamp lt datetime'2017-07-24T20:07:35.000Z'
Это работает для меня. Но что, если бы фильтровать по текущей дате? Существуют ли предопределенные переменные/функции, которые будут возвращать текущую дату?