我注意到,如果一个日期与另一个日期相等,那么它们将被视为相等。
2010-12-31 15:13:48.000
另一个
,与此同时2010-12-31 15:13:48.001.
一开始我认为是将时间四舍五入到最近的整秒,但事实证明并非如此。
2010-12-31 15:13:48.002
正确地注册差异。
你有任何想法为什么会发生这种情况吗?
我注意到,如果一个日期与另一个日期相等,那么它们将被视为相等。
2010-12-31 15:13:48.000
另一个
,与此同时2010-12-31 15:13:48.001.
一开始我认为是将时间四舍五入到最近的整秒,但事实证明并非如此。
2010-12-31 15:13:48.002
正确地注册差异。
你有任何想法为什么会发生这种情况吗?
datetime
数据类型精确到毫秒(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秒的增量。
因此,根据舍入发生的位置,相差不超过三毫秒的时间戳可能被视为相等。