Question

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

Il donne erreur ORA-01843: pas un mois valide


J'ai couru le suivant, il a fait bien

SELECT pd_end_dt, nrx_cnt DE wkly_lnd.lnd_wkly_plan_rx_summary OÙ pd_end_dt> '01 -Jan-09

mais si je veux avoir des données de semaine sage comment faire dat

Pas de solution correcte

Autres conseils

Vous ne donnez pas une chaîne de format TO_DATE . Cela pourrait provoquer Oracle pour gérer votre mauvaise date. Essayez

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

au lieu (selon l'endroit où vous êtes, vous pouvez modifier l'ordre de DD et MM). Voir cette description de l'argument chaîne format TO_DATE pour plus de détails.

essayer

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

Ok pas sembler dur, mais faire une recherche google en premier. Les réponses précédentes fonctionnent, mais pour une plus explaination comlete voir

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

Si vous allez utiliser le format par défaut comme vous faites, alors vous devriez savoir ce qui est le premier

Il y a deux possibilités:

  1. La fonction TO_DATE échoue en raison du format de date par défaut (comme par d'autres réponses déjà données ici).

  2. La pd_end_dt colonne n'est pas une colonne de date. La requête tente de convertir les valeurs en pd_end_dt aux dates antérieures à la comparaison, et à défaut sur l'une des lignes.

Pour démontrer:

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top