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

SQL Oracle Discussion :

Probleme avec les formats de date


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 12
    Points : 10
    Points
    10
    Par défaut Probleme avec les formats de date
    Bonjour tout le monde,

    Je me résous à demander de l'aide parce que là, je commence a être un peu perdu.
    Je voudrais interroger une base de donnée Oracle à l'aide de lignes de commande.
    Ma requete est la suivante :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select ..., TO_DATE(SUBSTR(TO_CHAR(MIN(LAUNCH_BEGIN_DATE)),1,18),'DD-MON-RR HH24.MIN.SS') PLANIF, ...
    FROM LANCEMENT...
    WHERE ... ;
    Et j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select ... , TO_DATE(SUBSTR(TO_CHAR(MIN(LAUNCH_BEGIN_DATE)),1,18),'DD-MON-RR HH24.MIN.SS') PLANIF,
                                                                                                           *
    ERROR at line 1:
    ORA-01821: date format not recognized
    J'utilise la fonction substring car sans cela la date retournée est de la forme DD-MON-RR HH24.MIN.SS,000000

    Sans la fonction TO_DATE ma chaine de caractere n'est pas considéré comme une date.
    Les variables suivantes sont définit dans mon script qui appelle le programme sqlplus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    NLS_LANGUAGE=ENGLISH
    NLS_DATE_LANGUAGE=ENGLISH
    NLS_DATE_FORMAT='DD-MON-YYYY HH24.MI.SS'
    J'ai mis english car lorsque je fais afficher le résultat de la fonction SUBSTR j'obtiens des dates de la forme 01-JAN..., 03-FEB...

    Bref, comment m'en sortir pour obtenir une date+heure en sortie de cette requete.
    Je suis un peu perdu avec toutes les variables NLS_*, je n'ai pas beaucoup (du tout) de vécu avec Oracle.

    Merci d'avance

    Merci d'avance

  2. #2
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 224
    Points : 211
    Points
    211
    Par défaut
    Bonjour,

    Pourquoi avoir dans ta requête le format MIN ? As-tu essayé avec MI ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT ..., TO_DATE(SUBSTR(TO_CHAR(MIN(LAUNCH_BEGIN_DATE)),1,18),'DD-MON-RR HH24.MI.SS') PLANIF, ...
    FROM LANCEMENT...
    WHERE ... ;

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Oh le boulet!
    Effectivement ça marche mieux avec le MI
    Comme quoi, d'avoir un regard extérieur ça aide pas mal


    Par contre ça me retourne juste la date, sans l'heure.

    Quelle est donc la variable a modifier pour avoir l'heure? Je pense que c'est possible, puisque la chaine en entrée de la fonction TO_DATE est de la forme '03-FEB-09 12.00.00'

    Merci

  4. #4
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 224
    Points : 211
    Points
    211
    Par défaut
    Modifie le paramètre NLS_DATE_FORMAT.

    Si quand tu fais un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select sysdate from dual;
    Il ne te retourne pas la date alors c'est que ton paramètre NLS_DATE_FORMAT est mal positionné. Dans ce cas fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER SESSION SET NLS_DATE_FORMAT='DD-MON-RR HH24.MI.SS'
    Et refais le test du sysdate.

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Merci, ça marche niquel

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

Discussions similaires

  1. Problème avec les Formats de Date
    Par sebac dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 08/01/2008, 15h30
  2. [SQL Server 2000]Probleme avec les dates !
    Par ChristopheOce dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/10/2006, 15h58
  3. Help!! Probleme avec les dates sur SQL SERVER
    Par Nadaa dans le forum MS SQL Server
    Réponses: 16
    Dernier message: 03/08/2006, 16h55
  4. probleme avec le format de la date
    Par stan30160 dans le forum Access
    Réponses: 15
    Dernier message: 19/06/2006, 11h49
  5. Grop probleme avec les date
    Par stinger000 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 24/04/2006, 13h49

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