IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Import/Export Oracle Discussion :

Format date étrange sous base oracle, extrait vers excell


Sujet :

Import/Export Oracle

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2014
    Messages : 17
    Points : 11
    Points
    11
    Par défaut Format date étrange sous base oracle, extrait vers excell
    Suite à l'extraction de ma base de données, je m'aperçois sous excell que les dates sont sous un format bizarre, un grand nombre de 7 chiffres commençant toujours par 24. J'ai les mêmes nombres sous oracle, à priori, ça ne vient pas de l'extraction.
    Lorsque je veux modifier le format de mes cellules "date" sous excell, j'obtiens une date normale mais qui ne correspond pas à la date exacte.

    Y a-t-il une manip à faire sous oracle ou excell pour obtenir la véritable date?

  2. #2
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par Okkotonushi Voir le message
    J'ai les mêmes nombres sous oracle
    Bonjour,

    Il va falloir préciser un peu la demande et donner des exemples, parce que si je comprends bien tu as un nombre sous Oracle, que tu extrais sous Excel et tu te retrouves avec le même nombre sous Excel, que tu veux transformer en date ?
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2014
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Voilà, c'est exactement ça. Par exemple, j'ai le nombre 2434967 sous oracle et sous excell apres extraction. Ce nombre, une fois le format de cellule changer en date, me donne 16/09/8566, alors que la vraie date correspondante est 02/01/1969.

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 814
    Points
    17 814
    Par défaut
    Quel est l'algorithme, car je ne retrouve pas le 2 janvier 1969 avec les plus usuels.
    Celui qui se rapproche le plus c'est la date julienne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select to_date(2434967, 'J') as julian_dt
      from dual;
     
    JULIAN_DT
    ----------
    1954-08-12
    Pour info, Oracle et Excel utilisent ce nombre en tant que nombre de jours depuis le 1er janvier 1900 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select date '1900-01-01' + 2434967 as dt
      from dual;
     
    DT
    ----------
    8566-09-18

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2014
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    J'utilise l'algorithme de excell, donc je ne sais pas à quoi il correspond...

    En utilisant ton select, je me suis aperçu que je me suis trompé de ligne (j'ai 10 000 lignes de date...). Mais ça ne change pas mon problème au final.

    Comment je peux faire, sous excell pour convertir mes nombres en véritable dates? Merci de prendre du temps pour me secourir

    Edit: enfin si, ça change mon problème. Comment appliquer l’algorithme julienne sous excel? D'ailleurs ton algorithme sql me donne 12/08/195 ou 02/01/196 avec une autre valeur. Ca n'a pas l'air d'être formaté comme il faut.

  6. #6
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Le format de date sous oracle est juste un rendu visuel (dépendant de ta sessions).

    Pour le passage sous excel d'une date au format julienne à une date conventionnelle, le plus simple est de poster sur un forum Excel.

    Petit lien Wiki http://fr.wikipedia.org/wiki/Jour_julien
    Attention, ma partie "Algorithme de conversion d'une date du calendrier julien en date en jours juliens" est pour moi fausse : Je n'arrive pas à tomber sur le résultat oracle de TO_CHAR(SYSDATE, 'J')

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT TRUNC((1461 * EXTRACT(YEAR FROM SYSDATE) + 6884472) / 4) + TRUNC( (153 * EXTRACT(MONTH FROM SYSDATE) - 457) / 5 ) + EXTRACT(DAY FROM SYSDATE) - 1 calcul_J,
    			TO_CHAR(SYSDATE, 'J') date_J
    FROM dual
     
    CALCUL_J	DATE_J
    2456960	2456947
    Le plus simple serait de transformer ta date en une date reconnue par excel lors de ton export excel.

    Bon courage
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2014
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Je regarde ça de plus près. Je suis tombé sur quelques pages parlant de ça. Merci du coup de pouce Je vous tiens informer de l'avancement.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2014
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    J'ai eu de bonnes réponses sur un autre poste. Je vous le partage, au cas où:

    http://www.developpez.net/forums/d14...l/#post8001028

  9. #9
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 814
    Points
    17 814
    Par défaut
    Merci d'avoir posté la suite de l'histoire.

    Par contre, ne pouvez-vous vraiment pas modifier votre extraction ?
    En utilisant l'expression suivante sous Oracle vous obtenez directement le bon format :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    to_char(to_date(votre_date_julienne, 'J'), 'dd/mm/yyyy')
    Ça me paraît plus court et plus clair que l'énorme formule sous Excel.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/07/2015, 10h02
  2. Migration base Oracle 9 vers Oracle 10G - Microsoft Query retourne ORA-01722
    Par coyote90 dans le forum Interfaces de programmation
    Réponses: 0
    Dernier message: 14/05/2012, 16h54
  3. Migration (upgrade) base oracle 9iR2 vers 11gR2
    Par devkais dans le forum Oracle
    Réponses: 2
    Dernier message: 10/02/2012, 15h04
  4. [XL-2003] Format date problématique sous VBA
    Par NoobProg dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/06/2011, 17h44
  5. Réponses: 3
    Dernier message: 31/01/2011, 11h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo