Domanda

SELECT pd_end_dt,nrx_cnt
FROM wkly_lnd.lnd_wkly_plan_rx_summary
WHERE pd_end_dt >TO_DATE('01/01/2009')

Si sta dando errore ORA-01843: non un mese valido


Ho eseguito il seguente ha fatto bene

SELEZIONARE pd_end_dt, nrx_cnt DA wkly_lnd.lnd_wkly_plan_rx_summary DOVE pd_end_dt> '01 -Jan-09'

ma se voglio avere settimana saggio di dati come fare dat

Nessuna soluzione corretta

Altri suggerimenti

Non stanno dando una stringa di formato per TO_DATE . Ciò potrebbe causare Oracle per gestire la data sbagliata. Prova

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

invece (a seconda di dove sei, si potrebbe desiderare di cambiare l'ordine delle DD e MM). Vedere questa descrizione del formato TO_DATE stringa di argomento per i dettagli.

try

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

Ok per non sembrare duro, ma fare una ricerca su google prima. Le risposte precedenti lavori, ma per una spiegazione più comlete vedere

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

Se avete intenzione di utilizzare il formato predefinito, come si sta facendo, allora si dovrebbe capire di cosa si tratta prima

Ci sono due possibilità:

  1. La funzione TO_DATE sta venendo a mancare a causa del formato data di default (come da altre risposte qui già dato).

  2. Il pd_end_dt colonna non è una colonna di data. La query sta cercando di convertire i valori in pd_end_dt alle date precedenti al confronto, e non riuscendo in una delle righe.

Per dimostrare:

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top