日付を比較する場合は、日付を比較する必要があります。日付と時刻の算術演算をサポートしています。
あなたの場合、出発日の月が前の月と同じであるテーブルを照会しているようです。これは意味がありません。現在11月の場合、クエリは2010年10月、2009年10月、2008年10月などから行を返します。
日付計算が前月の範囲内にあるかどうかを判断する最も良い方法の1つは、現在の月の最初の日を返すTRUNC(日付、 'MONTH')とADD_MONTHS (date、-1)、これは1ヶ月前の日付を取得します。
SELECT TO_CHAR("HOL_DEPART_DATES"."DEPART_DATE", 'MM') as "Depart_Month",
TO_CHAR(ADD_MONTHS(sysdate, -1), 'mm') as "Current_Month"
FROM "HOL_DEPART_DATES"
WHERE "HOL_DEPART_DATES"."DEPART_DATE"
BETWEEN ADD_MONTHS(TRUNC(SYSDATE,'MONTH'),-1)
AND TRUNC(SYSDATE,'MONTH') - 0.00001;
は「0.00001」とは、日付から第1減算するので、日付の範囲を効果的に01 10月-2010 00:00:00に31 10月2010年23(それは今や2010年11月であると仮定して)次のようになります。 59:59。
代わり、同等の構文は次のようになります。
SELECT TO_CHAR("HOL_DEPART_DATES"."DEPART_DATE", 'MM') as "Depart_Month",
TO_CHAR(ADD_MONTHS(sysdate, -1), 'mm') as "Current_Month"
FROM "HOL_DEPART_DATES"
WHERE "HOL_DEPART_DATES"."DEPART_DATE"
>= ADD_MONTHS(TRUNC(SYSDATE,'MONTH'),-1)
AND "HOL_DEPART_DATES"."DEPART_DATE" < TRUNC(SYSDATE,'MONTH');
スポットで、あなたの両方が、今はるかに理にかなっています! – Coffeee