请让我知道以下 sql 查询的问题
题
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
如果您要使用默认格式就像你正在做的,那么你应该找出是什么先
有两种可能:
由于默认日期格式,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
不隶属于 StackOverflow