2013-10-22 216 views
3

MSDN“日期时间的四舍五入分数精确到秒”,应该保存到一个datetime列时截断下列日期:SQL Server日期时间四舍五入

new DateTime(635180453197748530L) //22 October 2013 13:28:39.7748530 
// write to SQL server and re-read it 
// result should be = 6351804531977 3 0000L 

但是,重复性6351804531977 7 0000L。这是一个错误还是我在理解算法时遇到任何问题?

(我们使用实体框架的读/写DB)

+3

我怀疑ADO.Net中的某个东西将它舍入到了几毫秒,但是接下来在你参考的页面上四舍五入(所以你得到了两倍的舍入),并且它最终凑到了5到 –

+0

听起来像一个很好的提示,我会做一些检查! –

+0

我花了很长时间在'System.Data'中花费了很长时间来研究.NET代码,并且我找不到问题 - 但仍然怀疑它是一个双舍入问题。 –

回答

1

有时候,之前我写了日期时间到数据库中,我与问候它转换为SQLDATETIME,我发现产生更可预测的结果四舍五入/截断而不是直接将CLR数据类型写入数据库。