有一个小问题,如果我将DateTime字段保存为SQL命令参数,它会失去精度,例如通常不到一毫秒。
e.g。参数的Value
是:
TimeOfDay {16:59:35.4002017}
但它的SqlValue
是:
TimeOfDay {16:59:35.4000000}
那就是保存在数据库中的时间。
现在我并没有特别困扰几微秒,但是当我比较数值时它会导致问题,它们显示为不相等。 (同样在一些比较中,直到运行时才知道该字段的类型,所以我甚至不确定我是否需要特殊的DateTime“舍入”逻辑)
添加参数时是否有任何简单的解决方法?
答案 0 :(得分:8)
您正在使用DateTime
,documented与:
准确度:舍入为.000,.003或.007秒的增量
听起来你想要DateTime2
:
精度,比例:0到7位,精度为100ns。默认精度为7位数。
100ns精度与DateTime
(1 tick = 100ns)相同
或者只是与差异一起生活,并在比较之前编写方法来舍入DateTime
- 这可能最终会变得更简单。
答案 1 :(得分:3)
尝试使用datetime2,它具有更好的精确度。