1

わかりましたので、DATE_OF_ENTRY と呼ぶフィールドのデータを取得しようとしています。フィールドは次のようになります。

DATE_OF_ENTRY データの例

28-NOV-15

そのため、特定のレコードを取得するために月に 2 回実行されるスクリプトでこのフィールドを使用する必要があります。基本的に今月16日なら1日から15日までの全てのレコードを引き上げたい。翌月の 1 日にこのスクリプトを実行すると、先月の 16 月末までのすべてのレコードが必要になります。

今使っているもの

WHERE ROUND(DATE_OF_ENTRY,'MM') = ROUND(sysdate-1,'MM') AND DATE_OF_ENTRY < trunc(sysdate)

このステートメントの問題は、先月の 16 日から月末までは 1 日で動作しますが、16 日には前月からのデータがまだ取得されることです。

どんな助けでも大歓迎です!

4

1 に答える 1

0

パラメータを指定してTRUNC()関数を 使用すると、月の最初の日が取得されます。MONTH

TRUNC()function withを使用するとDATE_OF_ENTRY、パーツが削除されTIMEます。

演算子を使用+して日を追加しますDATE

 SELECT TRUNC(sysdate, 'MONTH') firstDay,
        TRUNC(sysdate, 'MONTH') + 15 Day15,
        *
 FROM yourTable
 WHERE TRUNC(DATE_OF_ENTRY) >= TRUNC(sysdate, 'MONTH')
   AND TRUNC(DATE_OF_ENTRY) <= TRUNC(sysdate, 'MONTH') + 15
于 2015-12-01T18:58:36.907 に答える