日付時刻を文字列形式で保持するフィールドがAzureテーブルにあります。私はこれをDateTimeフィールドに置き換えて、文字列の値を変換したいと思います。これに最も近いアプローチは何ですか?私は、新しい列を作成することによって、これを行うと、更新ステートメントを実行したいSQLでAzureテーブルストレージの文字列フィールドをdatetimeフィールドに変換します。
...
日付時刻を文字列形式で保持するフィールドがAzureテーブルにあります。私はこれをDateTimeフィールドに置き換えて、文字列の値を変換したいと思います。これに最も近いアプローチは何ですか?私は、新しい列を作成することによって、これを行うと、更新ステートメントを実行したいSQLでAzureテーブルストレージの文字列フィールドをdatetimeフィールドに変換します。
...
私はこれを試していませんが、ここでは/やるべきことです。これはC#/ VB/etcスクリプトである必要があります。
一般的に、これは完全なPITAであり、オブジェクトデータベースとストレージサービスのベーンの1つです。
Azureテーブルストレージクライアントは、ネイティブのDateTime(ではないのDateTimeOffset)を理解し、あなたは単純に検討する必要がありますSDKがあなたのために問題を処理させるようにします。そうでない場合は、DateTimeを文字列として表す最も良い方法は、「u」形式を使用して書かれ解析されたUTC値として明示的に格納して取得することです。
var dateAsString = myDateTime.ToString("u");
マーク - 私がはっきりしていない場合は申し訳ありませんが、値はテーブルに文字列として保存されていて、新しいDateTime属性で保持したいと考えています。 SQLで私は新しい列を作成し、更新ステートメントを実行します... –
それがうまくいくかどうかはわかりませんが、あなたは「幸せな無知」を試みることができる:
実表ストアは、実際に(開発ファブリックが異なる場合があります)あなたのエンティティの形状を気にしません。エンティティプロパティをDateTimeに変更しますが、Setterテストでは値をDTに解析しない場合は値はDatetimeです。あなたは、単にエンティティをロードし、それらを再度保存するとうまくいけば、時間をかけて
private DateTime myDT
public DateTime MyDT
{
get
{
return myDT;
}
set
{
DateTime = null;
if(value is DateTime)
{
myDT = value;
}
else
{
myDT = DateTime.Parse(value);
}
}
}
のようなものは、明示的またはバッチで、それは日時にそれらすべてを設定します。
答えをありがとう - 私はPITAになることを期待していた:( –