Maison >base de données >tutoriel mysql >Que dois-je faire si un mois invalide ora01843 apparaît ?
Que dois-je faire si ora01843 un mois invalide apparaît ?
Lors de l'exécution de l'instruction SQL suivante
select TO_DATE('01-FEB-1988', 'DD-MON-YYYY') from dual;
l'erreur suivante s'est produite :
Redémarrer I a vérifié le format de date de l'heure système actuelle et a trouvé ce qui suit :
Exécution :
SELECT TO_CHAR(sysdate, 'DD-MON-YYYY','NLS_DATE_LANGUAGE = ''SIMPLIFIED CHINESE''') Chn, TO_CHAR(sysdate, 'DD-MON-YYYY', 'NLS_DATE_LANGUAGE = American') Ame, TO_CHAR(sysdate, 'DD-MON-YYYY', 'NLS_DATE_LANGUAGE = Japanese') Jap, TO_CHAR(sysdate, 'DD-MON-YYYY', 'NLS_DATE_LANGUAGE = english') Eng FROM DUAL;
Les résultats suivants apparaissent :
Par Dans l'instruction SQL, on peut voir que la fonction TO_CHAR dans la première et la quatrième ligne obtient l'heure système respectivement pour la Chine, l'Amérique, le Japonais et l'Anglais
À partir du diagramme de résultat, on peut voir que le format de l'heure. sous la Chine et le Japonais est 27-7 Mois-2018
On peut voir que dans le problème ci-dessus, si vous souhaitez convertir le format de l'heure en "DD-MON-YYYY", une erreur ORA-01843 sera se produire parce que le système ne reconnaît pas l'anglais MON ;
La solution est donc la suivante :
1. Modifiez l'heure dans select TO_DATE('01-FEB-1988', 'DD-MON. -YYYY') de dual ; Changez le champ au format chinois, c'est-à-dire "01-February-1998" ;
2 Définissez le format de son NLS_DATE_LANGUAGE sur Aerican ou English
ALTER SESSION SET nls_date_language = 'SIMPLIFIED CHINESE';
. Recommandé : "Tutoriel vidéo MySQL》
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!