DateTime.Now相差一毫秒

时间:2013-01-25 10:29:46

标签: c# datetime time

在我的应用程序上,我将DateTime.Now分配给新的DateTime。然后我将它分配给一个值并将其写入数据库。但是当我从数据库中取回它并将变量与先前分配的新日期时间进行比较时,它会相差几毫秒。

任何人都知道为什么会这样?

E.g。

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

Database.SaveObject = var1

Object2 = Database.FindObjectById(objectId);

Assert.AreEqual(var1, Object2.DateTime);

2 个答案:

答案 0 :(得分:7)

这很可能是DB datetime列精度的问题:它没有足够的精度来存储时间长达一毫秒。使用datetime时,时间部分为rounded to increments of .000, .003, or .007 seconds

将列的类型切换为datetime2应该会有所帮助,因为它的分辨率为100纳秒。

答案 1 :(得分:2)

您使用的是MS SQL Server,日期时间仅精确到3毫秒,因此您会发现该数字四舍五入到最接近的3毫秒。

请参阅MSDN - TSQL DateTime

如果您有SQL2008或更高版本,则可能需要使用DateTime2