2011-12-09 4 views
0

私は(名前、年、曜日、時間)とテーブルBが(UserID、Time_written)を含むテーブルAを持っています..時間フィールドのプラスまたはマイナス30秒以内にある行を選択するには、どのようにSQLクエリを記述しますか?

私はどのように選択し、表内のすべての行のプラスマイナス30秒以内にあるテーブルA ..

+0

あなたはテーブルを何が必要ですBのために? –

答えて

0

は、私は、DB2の日付の演算子についてはよく分からないんだけど、トリックは、SQL Server上で

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

に参加することです私は書くだろう

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

@Albinは近いですが、DB2はDATEADD()機能を持っていない、それはANSI日付数学を使用しています(これはtimeTIMESTAMPフィールドであることを前提として)

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

+0

ありがとうございます..それは働きました:D – user1090325

+0

答えがうまくいく場合は、それを受け入れるオプションが必要です(左にチェックマークを入れてクリックする必要があります)。 – bhamby

関連する問題