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 :

Problème de Date


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 8
    Par défaut Problème de Date
    Bonjour a toutes et tous

    J'ai rencontré un problème très bizarre en utilisant l'Oracle et Java

    Je m'explique:

    Je programme en Java, et me connecte sur une BD oracle par un JDBC

    Connection conBD = null;

    Class.forName("oracle.jdbc.driver.OracleDriver");

    String chaine = "jdbc:oracle:thin:@"+IPBD+":"+PortBD+":"+SIDBD;
    conBD = DriverManager.getConnection(chaine,UserBD,PasswordBD);
    Puis quand je fais

    PreparedStatement ps = conBD.prepareStatement("select * from FACTURE where NUMFACTUREINTERNE = ?");
    ps.setString(1, NumFacture);
    ResultSet rs = ps.executeQuery();

    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
    System.out.println("date facture" + sdf.format(f.getDateFacture())
    +"date ms : " + rs.getDate(3).getTime()
    + "date du jour ms : " + (new Date()).getTime());
    J'obtiens comme resulttat :
    date facture 11/05/0011
    date ms : -61809008400000
    date du jour ms 1305376229407
    Date : 11/05/0011
    PS: dans la BD, la date est 11/05/2011, mais dans mon application, la date obtenu est 0011 -.-

    Est-ce qu'il y a quelqu'un pourrait m'aider? SVP

    Merci d'avance

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 954
    Par défaut
    Peut être un problème d'affichage de la date, oracle afficherait la date sur 2 digits pour l'année alors que java en attend 4 et il comblerait par 00 (c'est juste une supposition je ne connais pas java même si en tant qu'utilisateur j'ai déjà vu ce genre de date issue d'une appli java...)
    Que donne depuis le programme java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    SQL> select * from nls_session_parameters where parameter='NLS_DATE_FORMAT';
     
    PARAMETER                      VALUE
    ------------------------------ ----------------------------------------
    NLS_DATE_FORMAT                DD-MON-RR
     
    Elapsed: 00:00:00.01
    SQL> select sysdate from dual;
     
    SYSDATE
    ---------
    14-MAY-11
     
    Elapsed: 00:00:00.01
    SQL>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SQL> alter session set NLS_DATE_FORMAT='DD/MM/YYYY HH24:MI:SS';
     
    Session altered.
     
    Elapsed: 00:00:00.00
    SQL> select sysdate from dual;
     
    SYSDATE
    -------------------
    14/05/2011 17:02:12
     
    Elapsed: 00:00:00.00
    SQL>
    De toute façon select * n'est pas une bonne manière de coder, il faut sélectionner les colonnes explicitement et tu pourras en profiter pour formater l'affichage de la date à ta convenance en utilisant to_char :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SQL> select to_char(sysdate,'DD/MM/YYYY') from dual;
     
    TO_CHAR(SY
    ----------
    14/05/2011
     
    Elapsed: 00:00:00.01
    SQL>

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 8
    Par défaut
    avant de poster, j'avais déja fait dans l'oracle
    SELECT * FROM nls_session_parameters WHERE parameter='NLS_DATE_FORMAT';
    pour etre sur que j'ai bien 2011

    Mais merci quand meme pour ta réponse

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 954
    Par défaut
    Oui mais tu l'avais fait depuis le programme java ou depuis toad,sqldeveloper ou sqlplus, le client est important puisque c'est un parametre de session.
    Si c'était depuis le programme java, précise le driver utilisé au cas où quelqu'un ait rencontré le même problème, mais à mon avis tu auras plus de chance sur un forum java...

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 8
    Par défaut
    Oui, t'avais raison, c'est le problème de coté Java

    J'avais juste supprimer la librairie JDBC et le recharger, et ca fonctionne correct d'un coup

    Merci pour tes réponses

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

Discussions similaires

  1. Problème de date dans requête de màj imbriquée
    Par VirginieGE dans le forum Langage SQL
    Réponses: 11
    Dernier message: 20/07/2004, 15h34
  2. problème de date
    Par baboune dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 10/06/2004, 10h52
  3. Problème de date dans MONTHS_BETWEEN
    Par ghostlord79 dans le forum Oracle
    Réponses: 10
    Dernier message: 07/04/2004, 11h21
  4. Problème conversion date
    Par mat.M dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/03/2004, 15h05
  5. Encore un probléme de date avec TADO !
    Par bNoureddine dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/02/2004, 18h22

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