2013-10-22 355 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數據類型寫入數據庫。