我有一個表是varchar2(10)的日期列。 我正在使用select查詢從表中提取一些數據。如此下去,如:ORA-08143(不是有效的月份)
Select
.........................
from
.........
where
................
and (to_date(masc_date,'dd-mm-yyyy') between
to_date('10-05-2014','dd-mm-yyyy') and to_date('11-05-2014','dd-mm-yyyy'))
的masc_date是日期列是VARCHAR2(10)和在該列中的日期值在格式「DD-MM-YYYY」。 當我執行上述查詢時,我得到ORA-08143:不是有效月份。
然而,當我修改我上面的查詢爲:
Select
.........................
from
.........
where
................
and (to_date(masc_date,'dd-mm-yyyy') between
(select to_date('10-05-2014','dd-mm-yyyy') from dual) and
(select to_date('11-05-2014','dd-mm-yyyy') from dual))
查詢工作正常。我無法找到此錯誤的原因,因爲在我的第一個查詢中,所有「to_date」中的日期值都是相同的格式和char值。
注:在我的數據庫中的NLS語言是美國和日期格式是「DD-MON-RR」
我認爲您的選擇的未公開部分和哪裏不包含任何日期? – Rene
麻煩從這裏開始「masc_date是日期列,它是varchar2(10)」。日期列應具有DATE作爲其數據類型。現在你剩下的數據清理。雷內的劇本是一個好的開始。 –