Eli*_*yal 4 sql-server datetime
我在SQL中的DATETIME字段中存储时间,但是当我尝试删除少于该值的任何内容时,它实际上是删除该值.例如:
我的价值2015-06-24 16:32:42.当我运行以下查询时,它会在表格中显示243,即使它不在其范围内,它也会删除该值.为什么?
DELETE FROM MyTable
WHERE MyDate <= '2015-06-24 16:32:42.242'
Run Code Online (Sandbox Code Playgroud)
有精确问题吗?
legacy datetime数据类型中的值仅存储到大约1/300的精度.
有效的MS的结局是0,3,7什么都将被四舍五入到最接近的那些(5是等距的3和7,并四舍五入到7,这是仅为2ms调整).
因此.242被.243隐式转换为舍入到datetime
如果您使用的是SQL Server 2008+,则可以使用datetime2(3)完整的ms精度.
或者只是使用
DELETE FROM MyTable WHERE MyDate < '2015-06-24 16:32:42.243'
Run Code Online (Sandbox Code Playgroud)