MSSQL语句时间比较的问题

表一

编号时间
1232022-08-15 04:10:36
4562022-08-15 04:39:18
7892022-08-15 04:39:13

表二

编号时间
1232022-08-15 04:10:34
4562022-08-15 04:13:50
8542022-08-15 04:10:36

删除表一里和表二编号相同且时间相差在10秒内的数据。如果表一的编号在表二里没有的话就忽略,不删除。
问下各位,这种情况可以通过一条sql语句写出来吗?应该怎么写呀?感谢指导!

想要的结果就是表一最后变成

编号时间
4562022-08-15 04:39:18
7892022-08-15 04:39:13

delete from [dbo].[Test1]  where  编码 in (select T1.编码 from [dbo].[Test1] T1, [dbo].[Test2] T2 WHERE T1.编码=T2.编码 AND ABS(datediff(second, T1.时间,T2.时间))<10)

1、以表一为主表,两个表内关联,inner join,这样你就不用担心表一的编号不在表二的问题了;
2、然后表一时间戳减表二时间戳大于10,或者小于-10都是要删除的目标(时间戳可以用abs函数,都转成正整数)
3、建议先使用上面1、2说的条件查一下,筛选的数据是否正确,最后再执行删除


delete from tb_1 where id in (
select temp.id from
(
    select tb_1.id from tb_1, tb_2 
    where tb_1.id=tb_2.id
    and abs(tb_1.createTime-tb_2.createTime) <= 10000
) as temp);

delete from tb_1 where id in (
select temp.id from
(
    select tb_1.id from tb_1, tb_2 
    where tb_1.id=tb_2.id
    and abs(UNIX_TIMESTAMP(tb_1.createTime)-UNIX_TIMESTAMP(tb_2.createTime)) <= 10
) as temp);