Por favor, deixe -me saber o problema com a seguinte consulta SQL
Pergunta
SELECT pd_end_dt,nrx_cnt
FROM wkly_lnd.lnd_wkly_plan_rx_summary
WHERE pd_end_dt >TO_DATE('01/01/2009')
Está dando erro ORA-01843: não é um mês válido
Eu corri o seguinte, tudo bem
Selecione PD_END_DT, nrx_cnt de wkly_lnd.lnd_wkly_plan_rx_summary onde pd_end_dt> '01 -jan-09 '
Mas se eu quiser ter dados de semana de semana como fazer dat
Nenhuma solução correta
Outras dicas
Você não está dando uma string de formato para ATÉ A PRESENTE DATA. Isso pode fazer com que o Oracle lide com sua data errada. Tentar
to_date('01/01/2009', 'DD/MM/YYYY')
Em vez disso (dependendo de onde você é, convém alterar a ordem de DD e MM). Ver Esta descrição do argumento da string de formato to_date para detalhes.
tentar
TO_DATE('01/01/2009', 'dd/mm/yyyy')
Ok, para não parecer duro, mas faça uma pesquisa no Google primeiro. As respostas anteriores funcionam, mas para uma explicação mais de Comlete, consulte
http://www.dbmotive.com/oracle_error_codes.php?errcode=01843
Se você vai usar o formato padrão como está fazendo, você deve descobrir o que é o primeiro
Existem duas possibilidades:
A função to_date está falhando devido ao formato de data padrão (conforme outras respostas já fornecidas aqui).
A coluna
pd_end_dt
não é uma coluna de data. A consulta está tentando converter os valores empd_end_dt
datas antes da comparação e falhar em uma das linhas.
Para demonstrar:
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