Sql server 2008 如何连接略有不同的时间
我想链接两个日志表,但每个表中的条目不是在完全相同的时间完成的,时差会有所不同,但应该始终在一秒钟之内 为了简单起见,假设表A如下所示:Sql server 2008 如何连接略有不同的时间,sql-server-2008,join,Sql Server 2008,Join,我想链接两个日志表,但每个表中的条目不是在完全相同的时间完成的,时差会有所不同,但应该始终在一秒钟之内 为了简单起见,假设表A如下所示: ItemId int Comment varchar(50) LogTime datetime 假设表B具有完全相同的结构 假设这些记录在表A中: ItemId Comment LogTime ----------------------------------- 100 Test100-A1 12:00:00.00 20
ItemId int
Comment varchar(50)
LogTime datetime
假设表B具有完全相同的结构
假设这些记录在表A中:
ItemId Comment LogTime
-----------------------------------
100 Test100-A1 12:00:00.00
200 Test200-A 12:00:03.50
100 Test100-A2 12:00:06.30
这些都在表B中
ItemId Comment LogTime
-----------------------------------
100 Test100-B1 12:00:00.03
200 Test200-B 12:00:02.98
100 Test100-B2 12:00:06.53
我想得到以下输出
A.ItemId A.Comment A.LogTime B.ItemId B.Comment B.LogTime
-------------------------------------------------------------------------
100 Test100-A1 12:00:00.00 100 Test100-B1 12:00:00.03
200 Test200-A 12:00:03.50 200 Test200-B 12:00:02.98
100 Test100-A2 12:00:06.30 100 Test100-B2 12:00:06.53
我如何创建一个查询,以这种方式在ItemId和LogTime上将两个表链接在一起,但LogTime在两个方向上都有1秒的变化?我想出来了。。。实际上比我意识到的要简单一点
select *
from A left join
B on A.ItemId = B.ItemId and
abs(DATEDIFF(ss, A.LogTime, B.LogTime)) <= 1
选择*
从左连接
B在A.ItemId上=B.ItemId和
abs(DATEDIFF(ss,A.LogTime,B.LogTime))我猜出来了。。。实际上比我意识到的要简单一点
select *
from A left join
B on A.ItemId = B.ItemId and
abs(DATEDIFF(ss, A.LogTime, B.LogTime)) <= 1
选择*
从左连接
B在A.ItemId上=B.ItemId和
abs(DATEDIFF(ss,A.LogTime,B.LogTime))