我注意到 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 秒的增量,如表中所示。
因此,根据舍入的确切位置,相差最多三毫秒的时间戳可能被视为相等。