web-dev-qa-db-ja.com

タイムスタンプによるAzureStorageExplorerクエリ

azure Storage Explorerを使用するのは初めてであり、Azureテーブルに保存されているログを読み取る必要があります。私のバージョンは4です

このリファレンスを読みました http://msdn.Microsoft.com/library/Azure/ff683669.aspx ですが、タイムスタンプ列を操作するための説明はありません。

基本的に、特定の日付以降のログを見たいです。

私は次のようなクエリを試しました。

Timestamp ge '4/10/2013' Timestamp ge 4/10/2013 Timestamp gt '4/10/2013'
Timestamp gt 4/10/2013

そして結果はエラーメッセージだけです。

このリクエストの処理中にエラーが発生しました。

14
CidaoPapito

タイムスタンプでフィルタリングするには、以下のようなものを使用する必要があるようです。日時プロパティのフィルタリング ここ をご覧ください。

タイムスタンプgedatetime 2008-07-10T00:00:00Z '

これはあなたがそれをすることができる方法です:

var dateFilter = "(PartitionKey ge '0" + StartTime.Ticks + "')" + "and (PartitionKey le '0" + EndTime.Ticks + "')";

StartTimeEndTimeが日付範囲になります。インデックスがあるため、PartitionKeyに対してのみクエリを実行できることに注意してください。

2
mrDev

これはうまくいくはずです

Timestamp ge datetime'2013-10-06T00:00:00'

1
pmeyer

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は、CombineFilters()などのTableQueryメソッドを使用して構築した単なるstrin、gです。

_finalFilter = TableQuery.CombineFilters(finalFilter, TableOperators.And, DateFromFilter);
finalFilter = TableQuery.CombineFilters(finalFilter, TableOperators.And, DateUntilFilter);

TableQuery<MyAzureObject> query = new TableQuery<MyAzureObject>().Where(finalFilter);
_
1
Adrian K

日付範囲でクエリをフィルタリングする場合は、次を使用します。

Timestamp ge datetime'2017-07-21T20:07:35.000Z' and Timestamp lt datetime'2017-07-24T20:07:35.000Z'
0
Akshay Shinde