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:不是有效的月份


我运行了以下内容,效果很好

选择pd_end_dt,nrx_cnt,来自wkly_lnd.lnd_wkly_plan_rx_summary,其中pd_end_dt_dt> '01 -Jan-09'

但如果我想获得每周的数据如何做

没有正确的解决方案

其他提示

您没有给格式字符串的 TO_DATE 的。这可能会导致甲骨文来处理您的日期是错误的。尝试

to_date('01/01/2009', 'DD/MM/YYYY')

而不是(这取决于你是从那里,你可能想改变DD和MM的顺序)。请参阅本说明书的详细信息的TO_DATE格式字符串参数的。

TO_DATE('01/01/2009', 'dd/mm/yyyy')

确定不健全的苛刻,但首先做了谷歌搜索。以前的答案工作,但一个更comlete的解释请参见

http://www.dbmotive.com/oracle_error_codes.php?errcode=01843

如果您要使用默认格式就像你正在做的,那么你应该找出是什么先

有两种可能:

  1. 由于默认日期格式,TO_DATE 函数失败(根据此处已给出的其他答案)。

  2. 专栏 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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top