我在SQL中的DATETIME字段中存储时间,但是当我尝试删除少于该值的任何内容时,它实际上正在删除该值。例如:
我在表格中有一个值2015-06-24 16:32:42。 243 当我运行以下查询时,即使它不在其范围内,它也会删除该值。为什么呢?
DELETE FROM MyTable
WHERE MyDate <= '2015-06-24 16:32:42.242'
是否存在精确问题?
答案 0 :(得分:5)
遗留datetime
数据类型中的值仅存储到大约1/300精度。
有效ms结尾为0
,3
,7
其他任何内容将四舍五入到最接近的5
在3
和{之间等距离{1}}并向上舍入为7
,这是唯一的2ms调整。
当隐式转换为7
时,.242
向上舍入为.243
如果您使用的是SQL Server 2008+,则可以使用datetime
来获得完整的ms精度。
或者只是使用
datetime2(3)