Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1879 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Dates oracles justes à l'affichage mais fausses dans BD Oracle

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Dates oracles justes à l'affichage mais fausses dans BD Oracle

n°2114971
bsdu21
Posté le 05-12-2011 à 17:33:17  profilanswer
 

Bonjour,
 
J'ai un pb de date Oracle.
Je m'explique :  
. quand j'affiche ma date oracle, celle-ci est correcte  
. quand je soustrais cette date à la date du jour, j'obtiens un nombre de jour énorme, comme si la date stockée était en fait en l'année 6031
Ex : SELECT to_char(EV.BEGINDATE,'DD/MM/YYYY'), to_char(sysdate,'DD/MM/YYYY'), sysdate-ev.begindate diff
FROM affaires_test.PLANNINGEVENT ev
WHERE ID = 659117
13/02/2011 05/12/2011 1469317,72783565                        
 
Évidemment, dans la même table, des enregistrements sont justes, d'autres faux comme ce cas là.
 
Serveur Oracle 10.2.0.5.0 / Windows 2008 R2 standard 64 bits
 
Si quelqu'un a une idée...
Merci

mood
Publicité
Posté le 05-12-2011 à 17:33:17  profilanswer
 

n°2114973
olivthill
Posté le 05-12-2011 à 17:38:59  profilanswer
 

Il faudrait faire un to_char() du résultat, sinon le résultat est exprimé en nombre de secondes ou de milli-secondes ou de quelque chose de ce genre.

n°2115011
lasnoufle
La seule et unique!
Posté le 05-12-2011 à 19:40:45  profilanswer
 

Non la réponse est en jours.
Mais faire un to_char() va surement marcher quand meme.
 
Ca te dit quoi si tu fais:
SELECT EV.BEGINDATE
FROM affaires_test.PLANNINGEVENT ev
WHERE ID = 659117  


---------------
C'était vraiment très intéressant.
n°2115036
Mara's dad
Yes I can !
Posté le 06-12-2011 à 00:20:42  profilanswer
 

Ta date est le 13/02/-2011.
 
Le planning à donc commencé il y a plus de 4000 ans.
 
En effet, si sysdate - EV.BEGINDATE te donne 1469317,72783565, c'est que EV.BEGINDATE est situé 1469317,72783565 jours dans le passé, et non pas dans le futur en l'an 6031.
 
Et en effet,  select to_char(sysdate-1469317.72783565,'DD/MM/SYYYY') from dual donne 13/02/-2011.
 
Voir http://docs.oracle.com/cd/B19306_0 [...] htm#i34924 pour 'SYYYY'
 
C'est pas Oracle qui se plante, c'est le petit malin qui saisie la date !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°2115050
bsdu21
Posté le 06-12-2011 à 08:35:32  profilanswer
 

Merci à tous et surtout merci Mara's dad !!!
je tournais en rond et ces 4000 d'écarts ne s'expliquaient pas mais dans le bon sens effectivement, ça explique pas mal de chose.
Dans le cas présent, je ne suis pas sûr que je vais mettre en cause le petit malin qui saisit la date sans avoir vérifier au préalable auprès de l'éditeur si il n'y a pas un bug applicatif car les updates sont de la forme update [...] set begindate=to_char('13/02/11','DD/MM/RR')


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Dates oracles justes à l'affichage mais fausses dans BD Oracle

 

Sujets relatifs
[ORACLE] Remplacement de valeurs "NULL"[ORACLE] - génération d'ARCHIVE LOGS en masse
Petite question d'affichage de raccourcis sur un bouton dans un menuPrestashop - Affichage Conditionnel
Noms de tables accentués sous OracleWamp et Oracle
Oracle et PHPCalculer la différence entre deux dates (VBA)
Problème d'affichage en haute résolution 
Plus de sujets relatifs à : Dates oracles justes à l'affichage mais fausses dans BD Oracle


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR