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



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

2010-12-31 15:13:48.000 

和另一个

2010-12-31 15:13:48.001.

一开始我以为它是向上或向下舍入到最接近的完整秒数,但事实证明

2010-12-31 15:13:48.002 

正确记录差异。

知道为什么会这样吗?

datetime数据类型

精确到 3 毫秒(0.0033 秒),因此您的结果有意义。 值四舍五入为 0.000、0.003 和 0.007。 因此,您的第一个示例四舍五入为:"2010-12-31 15:13:48.000",第二个示例四舍五入为"2010-12-31 15:13:48.003"。

您可以在文档中阅读有关此内容的信息。

SQL Server 将日期时间存储为 1/300 秒(~3.33 毫秒)的精度,如文档中所述:

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

因此,根据舍入的确切位置,相差最多三毫秒的时间戳可能被视为相等。

相关内容

  • 没有找到相关文章

最新更新