SQL Server:日期时间比较,忽略几毫秒

use*_*805 1 sql sql-server datetime

我注意到,如果有两个日期时间被认为是相等的

2010-12-31 15:13:48.000 
Run Code Online (Sandbox Code Playgroud)

和另外一个

2010-12-31 15:13:48.001.
Run Code Online (Sandbox Code Playgroud)

我在开始时认为它是向上或向下舍入到最接近的整秒,但事实证明

2010-12-31 15:13:48.002 
Run Code Online (Sandbox Code Playgroud)

正确记录差异.

知道为什么会这样吗?

Gor*_*off 5

datetime数据类型是精确到3毫秒(0.0033秒),因此您的结果是有意义的.值四舍五入为0.000,0.003和0.007.所以,你的第一个例子是:"2010-12-31 15:13:48.000",第二个例子是"2010-12-31 15:13:48.003".

您可以在文档中阅读相关内容.