SELECT pd_end_dt,nrx_cnt
FROM wkly_lnd.lnd_wkly_plan_rx_summary
WHERE pd_end_dt >TO_DATE('01/01/2009')
给出错误ORA-01843:不是有效月份
我跑了以下它做得很好
SELECT pd_end_dt,nrx_cnt 来自wkly_lnd.lnd_wkly_plan_rx_summary WHERE pd_end_dt> '01 -Jan-09'
但是如果我想要周知道数据怎么做dat
答案 0 :(得分:4)
您没有向 TO_DATE 提供格式字符串。这可能会导致Oracle错误地处理您的日期。尝试
to_date('01/01/2009', 'DD/MM/YYYY')
相反(取决于你来自哪里,你可能想要改变DD和MM的顺序)。有关详细信息,请参阅this description of the TO_DATE format string argument。
答案 1 :(得分:3)
试
TO_DATE('01/01/2009', 'dd/mm/yyyy')
答案 2 :(得分:0)
好的不要听起来很苛刻,但先做谷歌搜索。以前的答案有效,但是为了更详细的解释,请参阅
http://www.dbmotive.com/oracle_error_codes.php?errcode=01843
如果您打算使用默认格式,那么您应该找出第一个
答案 3 :(得分:0)
有两种可能性:
由于默认日期格式,TO_DATE函数失败(根据此处已经给出的其他答案)。
列pd_end_dt
不是日期列。该查询正在尝试将pd_end_dt
中的值转换为比较前的日期,并在其中一行上失败。
演示:
SQL> create table t1 (datestrings varchar2(10));
SQL> insert into t1 values ('01/01/2009');
SQL> insert into t1 values ('02/01/2009');
SQL> insert into t1 values ('01/XX/2009');
SQL> select * from t1 where datestrings > '01/01/2009';
DATESTRINGS
-----------
02/01/2009
01/XX/2009
2 rows selected
SQL> select * from t1 where datestrings > TO_DATE('01/01/2009');
ORA-01843: not a valid month
SQL> select * from t1 where datestrings > TO_DATE('01/01/2009','DD/MM/YYY');
ORA-01843: not a valid month