0

我需要一些帮助,我需要找到其中一些具有相同时间戳或 500 毫秒时差的记录,这是示例数据:

  1. 2013-07-27 11:23:12.677
  2. 2013-07-27 11:23:12.378
  3. 2013-07-27 11:22:14.110
  4. 2013-07-27 11:21:24.103
  5. 2013-07-26 12:24:31.455
  6. 2013-07-26 12:24:31.455
  7. 2013-07-26 11:23:12.367
  8. 2013-07-26 11:22:32.111

rec #1 和 #2 相隔 299 毫秒,rec # 5 和 #6 相隔 0 毫秒,当搜索下面的数据时,我应该得到记录 #1、#2 和 #5、#6 等等上...

请任何帮助或合适的 SQL 将对我有很大帮助。

4

1 回答 1

0

SQL 引擎的日期时间函数不同。对于许多人来说,简单地减去它们会产生天数的差异。

因此,以下查询会产生您想要的结果:

select t1.*
from t t1 join
     t t2
     on abs(t1.ts - t2.ts) < (500.0 / (24*60*60*1000));

或者,或者:

select t.*
from t
where exists (select 1 from t t2 where abs(t.ts - t2.ts) < (500.0 / (24*60*60*1000)) )
于 2013-07-27T18:59:09.550 回答