我生成了一个日期时间,方式如下:
DateTime myDateTime = DateTime.Now;
我使用Entity Framework将其存储在数据库中(在DateTime
类型的列中),然后使用OData(WCF数据服务)检索它。
当值变为09:30:03.0196095时,它被存入数据库;
当值变为09:30:03.0200000是,它从数据库中取出。
这个操作的结果使得它在保存之前被视为19毫秒,而在重新加载之后被视为20毫秒。
因此,当我在代码中稍后进行比较时,它会失败,即使它们应该相等。
SQL Server是否没有与.NET一样高的精度?还是实体框架或OData弄错了什么?
我将只截断毫秒部分(我并不需要它们)。但我想知道这是为什么。
datetime2
具有更高的精度。 - Martin Smith09:30:03.999999
四舍五入为09:30:04.000000
。 - Joel Rondeau