2017-09-29 11 views
-2

SQLクエリのサポートが必要です。 START_DATE_TIMEが6 monthsより古いという結果を表示するはずだったと思っていた以下のクエリを実行しました。ただし、以下に示すように、START_DATE_TIMEが6か月未満のレコードを引き出しています。誰もがこれを回避する方法を知っていますか?SYSDATEを使用したSQLクエリのヘルプ

SELECT ESPADMIN.ESP_APPLICATION.APPL_NAME, 
     ESPADMIN.ESP_APPLICATION.START_DATE_TIME 
FROM ESPADMIN.ESP_APPLICATION 
WHERE(ESPADMIN.ESP_APPLICATION.START_DATE_TIME > add_months(trunc(sysdate, 'MM'), -06)); 

START_DAT_TIMEを示すクエリから数結果:

5/21/2017 10:00:35 AM 
5/21/2017 2:00:40 PM 
+2

>を<に変更します。 – ChrisM

答えて

0

クエリのどこ声明の中で、あなたは変更する必要があります>テーブル内<

select ESPADMIN.ESP_APPLICATION.APPL_NAME, 
    ESPADMIN.ESP_APPLICATION.START_DATE_TIME 
    from ESPADMIN.ESP_APPLICATION 
    where (ESPADMIN.ESP_APPLICATION.START_DATE_TIME < 
    add_months(trunc(sysdate, 'MM'),-06)) 

日付に数学的な比較を行うときには整数として扱われるため、日付が後になるほど整数は高くなります。数学的に後退することは、より少ないことになります。

+0

情報ありがとうございます。クエリはうまくいくが、何らかの理由で私は3月の全月のデータが失われているようだ。今日質問を実行したときに私が戻った最新の日付は、私が3月のデータを持っていることを確認したときに2/28でしたが、何らかの理由でそれを引っ張っていません。 –