0

我有两个表,table1 和 table2。

我通过比较几列加入他们,其中之一是日期列。

select *
from table1 t1 
INNER JOIN table2 t2 ON t1.HaloDate = t2.HaloDate

我的问题是我发现连接失败,无法比较以下 2 个日期:

“2011-07-23 14:01:32.113”和“2011-07-23 14:01:32.114”

是否可以通过忽略毫秒或引入像 5 毫秒这样的范围作为容差范围来编写此连接?

谢谢

4

2 回答 2

4

使用 DATEDIFF 函数并将您想要的任何范围放入其中,例如:

ABS(DATEDIFF(second, DateField1, DateField2)) < 5

表示日期值差异小于 5 秒。

您可以在时间范围内使用任何标签 - 从毫秒到年

于 2011-12-22T14:03:45.167 回答
4

是的:

select *
from table1 t1 
INNER JOIN table2 t2 
ON t1.HaloDate between dateadd(ms,-5,t2.HaloDate) and dateadd(ms,5,t2.HaloDate) 
于 2011-12-22T14:03:54.700 回答