-
Date oracle
Bonjour,
Savez vous comment on peut régler la gestion des dates sous oracle pour que :
quand je fais un insert avec le format JJ/MM/AAAA oracle enregistre dans la base AA/MM/00JJ ou les deux premiers caractères AA sont les deux premiers du format précedent.
En fait le truc c'est que je dois retrouver le format qu'a utilisé le client pour pouvoir reproduire l'erreur.
(Moi j'avais pensé à NLS_FORMAT_DATE mais quand je le modifie il n'insere pas chez moi mais retourne une erreur)
Désolé si c'est un peu tordu comme post.
Merci d'avance
-
Que je sache les dates ne sont pas mémorisées dans un quelconque format alphanumérique mais comme une valeur numérique. C'est lors du select de récupération qu'un formatage a lieu. Donc ce que tu veux, c'est récupérer la date au format AA/MM/00JJ ? Utilises dans ce cas un to_char pour formater.
-
Les dates sous Oracle sont toujours stockées au même format unique, tu ne peux pas choisir différents formats d'enregistrement selon les dates/lignes que tu veux insérer, c'est juste à la restitution que tu peux changer le format d'affichage
Edit : j'ai été devancé de quelques secondes dans la réponse 8-)
-
Et NLS_FORMAT_DATE
Merci de vos réponses.
Je crois que le paramètre NLS_FORMAT_DATE permet de spécifier le format d'enregistrement des dates . Qu'est ce que vous en pensez ?
-
non comme dit precedemment tu ne peut pas influer sur le format
de stockage de la date
le nls te permet de donner le format d'affichage ou de conversion par defaut de la date
-
un petit exemple
Et est ce que vous avez une idée sur ce qui cloche alors ?
Pour exemple :
si dans l'application je veux insérer une date 01/09/2010, chez nous il l'insere en 01/09/2010 et chez le client
en 20/09/0001.
Nous avons un oracle 9i sous linux avec nos variables "locale" en francais et le client en american
Merci encore
-
Je suppose que la saisie est alphanumérique, comment ton application convertit-elle cela en date ? Faites vous un to_date en précisant un format ou utilisez-vous une conversion implicite et dans ce cas sensible au paramétrage local par défaut des dates ?
-
est-ce que la colonne date de ta table est alimenté a partir d'une variable chaine par un to_date
par-ce que si dans le to_date le format de la date en entrée n'est pas renseigné c'est celui du nls qui est pris a savoir JJ/MM/YYYY en francais
et en americain MM/JJ/YYYY
Sinon comment affiche tu les dates pour les comparer , précise tu le format d'affichage dans le select pour être sur de l'affichage (select to_char(i_date,'DD/MM/YYYY') ) ?
edit:
Zut j'ai mis trop de temps a repondre
-
it's working !!!
Je ne sais pas exactement pourquoi javais ce comportement mais avec la
fonction to_date ca marche parfaitement.:king:
Merci beaucoup
Vive l'open source du ciboulot !!
-
NLS_FORMAT_DATE permet de définir un format de gestion des date par défaut. mais, quelque soit le format défini, Oracle stock toujours la date dans un format qui lui est propre. c'est à la restitution qu'on précise sous quelle forme on veut la voir ou sous quelle forme on la fournit à Oracle.
-
il vaudrait mieu quand même que tu cherche a comprendre le pourquoi
Car le même genre de probleme ce reproduira si tu ne comprend la gestion
des dates et des formats de dates dans oracle (je te rassure c'est tout bête)