SQL毫秒精度

时间:2015-06-24 17:12:05

标签: sql-server datetime

我在SQL中的DATETIME字段中存储时间,但是当我尝试删除少于该值的任何内容时,它实际上正在删除该值。例如:

我在表格中有一个值2015-06-24 16:32:42。 243 当我运行以下查询时,即使它不在其范围内,它也会删除该值。为什么呢?

DELETE FROM MyTable
WHERE  MyDate <= '2015-06-24 16:32:42.242' 

是否存在精确问题?

1 个答案:

答案 0 :(得分:5)

遗留datetime数据类型中的值仅存储到大约1/300精度。

有效ms结尾为037其他任何内容将四舍五入到最接近的53和{之间等距离{1}}并向上舍入为7,这是唯一的2ms调整。

当隐式转换为7时,.242向上舍入为.243

如果您使用的是SQL Server 2008+,则可以使用datetime来获得完整的ms精度。

或者只是使用

datetime2(3)