web-dev-qa-db-ja.com

30日より古い日付レコードを検索するOracle SQL Where句

レコードが30日より古い作成日フィールドを使用して、(Oracle SQL)テーブル内のレコードを検索したい。 >のような演算子を使用してレコードを検索するのは良いことですが、誰かが簡単なSQL where句ステートメントを提案して、30日より古いレコードを見つけることができれば、それはNiceです。それが私が使用しているものであるとして、Oracle構文を提案してください。

30
anwarma

つかいます:

SELECT *
  FROM YOUR_TABLE
 WHERE creation_date <= TRUNC(SYSDATE) - 30

SYSDATEは日付と時刻を返します。 [〜#〜] trunc [〜#〜] は、日付を真夜中にリセットするので、creation_dateこれは現在の時刻を含めて30日前です。

ニーズに応じて、 ADD_MONTHS の使用も検討できます。

SELECT *
  FROM YOUR_TABLE
 WHERE creation_date <= ADD_MONTHS(TRUNC(SYSDATE), -1)
53
OMG Ponies