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

时间:2015-06-19 10:45:40

标签: sql sql-server datetime

我注意到,如果一个

,则认为2个日期时间相等
2010-12-31 15:13:48.000 

和另一个

2010-12-31 15:13:48.001.

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

2010-12-31 15:13:48.002 

正确记录差异。

知道为什么会这样吗?

2 个答案:

答案 0 :(得分: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”。

您可以在documentation

中了解相关信息

答案 1 :(得分:0)

SQL Server将日期时间存储为精度1/300秒(~3.33毫秒),stated by the documentation

  

从1753年1月1日到9999年12月31日的吃和时间数据,精确到三百分之一秒(相当于3.33毫秒或0.00333秒)。值将四舍五入为.000,.003或.007秒的增量,如表中所示。

因此,根据精确舍入的位置,可以认为相差最多3毫秒的时间戳相等。