如何编写SQL查询来选择位于时间字段正负30秒内的行?



我有一个表a包含(名称,年份,日期,时间)和表B包含(UserID, Time_written)..

我不知道如何构建一个查询,将选择和输出行从表a,位于正负三十秒的每一行在表..

我不确定db2中的日期操作符,但诀窍是在

上连接
A.time < dateadd(B.time, 30 seconds) AND A.time > dateadd(B.time, -30 seconds)

在SQL Server上,我会写

select A.* from A inner join B on
     A.time < DATEADD("s", 30, B.time) AND
     A.time > DATEADD("s", -30, B.time)

@Albin很接近,但是DB2没有DATEADD()函数,它使用ANSI日期数学:

SELECT a.*
FROM tabA a
JOIN tabB b
  ON a.time BETWEEN (b.time - 30 SECOND) AND (b.time + 30 SECOND)

(假设timeTIMESTAMP字段)

最新更新