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

Oracle Discussion :

Pb de conversion de dates


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 18
    Par défaut Pb de conversion de dates
    Bonjour à tous,

    J'ai une application qui tourne sous Oracle et qui stocke une date au format numérique (du genre 74800 pour des raisons de compatibilité avec une base ISAM nous sommes contraint de conserver cela).
    Cette valeur moins 36163 permet d'obtenir la valeur numérique de la date Windows.
    Par exemple, en MSSQL, pour comparer cette valeur à la date du jour, j'utilise la commande suivante (le chanp YCOU_Date_enregistrement étant la valeur numérique 74800) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    convert(varchar(10),convert(DateTime,YCOU_Date_enregistrement - 36163),103)  = convert(varchar(10),getdate(),103)
    J'essaie désespérement de faire la même chose pour Oracle sans succès.

    Si quelqu'un a une idée ou une piste...

    Merci par avance pour votre aide. Bonne journée

    Jerome

  2. #2
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Le format Julien donne la date sous la forme d'un nombre de jour depuis longtemps....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SQL> SELECT TO_CHAR(SYSDATE,'j') FROM dual
      2  /
     
    TO_CHAR
    -------
    2453754
     
    SQL>
    Peut-être est-ce le même ?

  3. #3
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SQL>  select sysdate - date '1899-12-30' from dual;
    SYSDATE-DATE'1899-12-30'
    ------------------------
                  38735.6433
    note que chez Oracle, il n'y a pas de 29 février 1900 ;-)

  4. #4
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    peut-être que la date ISAM c'est le 1er janvier 1800

    dans ce cas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SQL> select sysdate - date '1800-01-01' from dual;
    SYSDATE-DATE'1800-01-01'
    ------------------------
                  75257.6472

  5. #5
    Membre averti
    Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 18
    Par défaut
    En fait, la date de départ est le 01/01/1801. En faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     select sysdate - date '1801-01-01' from dual;
    j'obtiens 74892 au lieu de 74896 (valeur retournée par la base ISAM pour aujourd'hui) mais bon ca ira maintenant


    OK je vous remercie pour votre aide précieuse. Vos exemples vont m'aider à mettre en place mes requetes

    Merci encore pour le coup de main. Bonne journée

    Jerome

  6. #6
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    je sais que microsoft s'est planté avec les dates, car le 29-février-1900 n'existe pas. De plus, si le jour 1 c'est le 1er janvier 1800, il faut partir du 31-déc-1799 (sinon on obtiens 0 pour le 1er janvier 1800).

    A toi de corriger jusqu'à ce que ça marche ;-)

  7. #7
    Membre averti
    Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 18
    Par défaut
    Super ! J'ajuste les dates et c'est bon

    Merci pour ton aide. Bonne journée

    Jerome

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

Discussions similaires

  1. Conversion de date
    Par jdu dans le forum Access
    Réponses: 2
    Dernier message: 26/01/2005, 16h17
  2. Conversion de dates
    Par Gogoye dans le forum Modules
    Réponses: 5
    Dernier message: 10/08/2004, 11h39
  3. - [CAST ou CONVERT] Problème de conversion de date
    Par Boublou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/07/2004, 14h31
  4. Conversion de date lors d'un import
    Par bilbon.S dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 26/03/2004, 14h33
  5. Conversion de date et division 64 bits
    Par dway dans le forum Assembleur
    Réponses: 38
    Dernier message: 27/01/2004, 10h31

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