DateTime.Now与毫秒不同

4
在我的应用程序中,我将DateTime.Now分配给一个新的DateTime,然后将其分配给一个值并写入数据库。但是,当我从数据库中获取它并将变量与之前分配的新日期时间进行比较时,会有几毫秒的差异。
有人知道为什么会这样吗?
例如:
DateTime var1 = DateTime.Now;
Object1.DateTime = var1;

Database.SaveObject = var1

Object2 = Database.FindObjectById(objectId);

Assert.AreEqual(var1, Object2.DateTime);

你要将这个值持久化到哪一列的数据类型是什么? - Matt
我们可以看一下 FindObjectById 吗? - Tim Schmelter
该值是否已正确保存在数据库中? - D J
可能是SQL Server 2008和毫秒的重复问题。 - Tim Lloyd
2
如果您正在使用SQL Server并存储在datetime(而不是datetime2)中,请注意毫秒部分只能以0、3或7结尾(如果我没记错的话)。 - Damien_The_Unbeliever
@TimSchmelter,findobjectbyID只是我编造的一个东西,以说明我的观点。应用程序中的函数使用ADO.NET将其从SQL DB中取出。Matt DateTime。Dariusz SQL或Oracle。 - Nicolas Pierre
2个回答

7

2

如果你正在使用MS SQL Server,那么日期时间只精确到3毫秒,因此你会发现数字会四舍五入到最接近的3毫秒。

请参考MSDN - TSQL DateTime

如果你使用的是SQL2008或更高版本,则可以考虑使用DateTime2


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接