4

私のアプリケーションでは、DateTime.Now を新しい DateTime に割り当てます。次に、それを値に割り当ててデータベースに書き込みます。しかし、データベースから戻って変数を以前に割り当てられた新しい日時と比較すると、数ミリ秒異なります。

なぜこれが起こるのか誰にも分かりますか?

例えば

DateTime var1 = DateTime.Now;
Object1.DateTime = var1;

Database.SaveObject = var1

Object2 = Database.FindObjectById(objectId);

Assert.AreEqual(var1, Object2.DateTime);
4

2 に答える 2

7

これは、DB の列の精度の問題である可能性が最も高く、datetimeミリ秒までの時間を格納するのに十分な精度がありません。を使用するdatetimeと、時間部分は.000、.003、または .007 秒単位で丸められます

datetime2分解能は 100 ナノ秒であるため、列のタイプを に切り替えると役立ちます。

于 2013-01-25T10:32:59.777 に答える
2

MS SQL Server を使用している場合、datetime は 3 ミリ秒までしか正確ではないため、数値が最も近い 3 ミリ秒に丸められていることがわかります。

MSDN - TSQL DateTimeを参照してください。

DateTime2SQL2008 以降を使用している場合は、使用することをお勧めします。

于 2013-01-25T10:32:28.743 に答える