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 に答える