2017-04-12 6 views
0

例を私は以下のデータを持つテーブルがあります。ORACLEクエリチェックレコードではない存在か - 時給

FORMID | QUANTITY | DATEADDED 
1  | 150  | 4/12/2017 2:33:27 PM 
2  | 100  | 4/12/2017 3:15:10 PM 

を私はクエリがデータを確認したい時間単位の現在時刻に基づいて存在するかどうか。

Current time: 18:00 

ので、クエリがデータをチェックするとき、それはデータが我々は最後のデータは午前三時15分10秒PMにあり、現在の時刻が18:00(2時間以上前で見ていないはずですので、 )。

私はこれがDATEADDED列は今(サーバー時間を使用して)1時間前の間にあるすべての行を取得します

SELECT * FROM TBQUANTITY WHERE... 
+0

18:00:00から18:59:59の間にデータが必要ですか? – Nitish

+0

最終日が '4/12/2017 3:15:10 PM'で、現在の時刻が' 4/12/2017 4:15:10 PM'であれば、この行は返されますか? –

答えて

1

、それを行う方法のアイデアを持っていません。他の回答に提案されているように、いくつかのレコードがある場合は、単純なアドホッククエリが見るの

SELECT * 
FROM TBQUANTITY 
WHERE dateadded BETWEEN SYSDATE - INTERVAL '1' HOUR AND SYSDATE 
0

SYSDATEを使用しています。

ターゲットがすべてのレコードを取得し、各レコードを1回だけ処理する場合は、さらに注意が必要です。

あなたが時間ごとに、このようなこのクエリは、最後のフル時間からデータを選択することを

select * from T where DATEADDED > trunc(sysdate,'HH') -1/24 
    and DATEADDED <= trunc(sysdate,'HH') 

注意(HH上TRUNC) 例えばとしてthaの最後の時間からのデータを選択するクエリをスケジュールすることができ

12-04-2017 17:00:00から12-04-2017 18:00:00まで、半開間隔は、ではなく、1時間のタイムスタンプのレコードを2回選択します。

関連する問題