2016-05-23 132 views
0

有一個小問題,如果我將日期時間字段保存爲SQL命令參數,它會失去精度,如通常小於1毫秒。C#日期時間到SQL日期時間丟失精度

例如該參數的Value是: TimeOfDay {16:59:35.4002017}

但其SqlValue是: TimeOfDay {16:59:35.4000000} 這是一個的保存在數據庫中的時間。

現在我對幾微秒沒有特別困擾,但是當我比較值時,它會導致問題,它們顯示爲不相等。 (在一些比較中,直到運行時才知道字段的類型,所以我甚至無法確定在開發時是否需要特殊的DateTime「四捨五入」邏輯)

是否有任何簡單修復這個時候添加參數?

+0

尋求調試幫助的問題(「爲什麼這個代碼不工作?」)必須包含所需的行爲,特定的問題或錯誤以及在問題本身中重現問題所需的最短代碼。沒有明確問題陳述的問題對其他讀者無益。請參閱:如何創建最小,完整和可驗證示例。 - 缺少表格定義。 – TomTom

+0

我們不能說任何事情,直到你顯示你的代碼! – techspider

回答

8

您使用DateTime,這是documented有:

精度:四捨五入到.000,.003,或0.007秒

這聽起來像你想DateTime2增量:

精度,比例:0到7位數字,精度爲100ns。默認精度爲7位數字。

這100ns的精確度是一樣的DateTime(1點= 100ns的)

或者只是住的差別和寫入方法在比較之前DateTime輪 - 這可能最終會被簡單。

3

嘗試使用datetime2它有更好的精度。