我有两个表,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 毫秒这样的范围作为容差范围来编写此连接?
谢谢
我有两个表,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 毫秒这样的范围作为容差范围来编写此连接?
谢谢
使用 DATEDIFF 函数并将您想要的任何范围放入其中,例如:
ABS(DATEDIFF(second, DateField1, DateField2)) < 5
表示日期值差异小于 5 秒。
您可以在时间范围内使用任何标签 - 从毫秒到年
是的:
select *
from table1 t1
INNER JOIN table2 t2
ON t1.HaloDate between dateadd(ms,-5,t2.HaloDate) and dateadd(ms,5,t2.HaloDate)