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

JDBC Java Discussion :

Pb de récupération de Date


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de GAEREL
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 160
    Par défaut Pb de récupération de Date
    Bonjour à tous.

    J'exécute le simplissime programme suivant :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    public class Test {
     
        /**
         * @param args
         */
        public static void main(String[] args) {
            try {
                DateFormat sdf_yyyyMMddHHmmssSSS = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss:SSS");  
                Class.forName("oracle.jdbc.OracleDriver");
                Connection _baseConnection = DriverManager.getConnection(
                        "jdbc:oracle:thin:@ServeurOracle:1521:Schema",
                        "login", "password");
                String query = "SELECT DISTINCT TRUNC(F.FACT_DATE,'DAY') AS DATE_ "
                    + "FROM NIKU.NBI_PRT_FACTS F "
                    + "WHERE F.PROJECT_ID = 5003779 "
                    + "AND F.FACT_DATE BETWEEN TO_DATE('06/09/2010','DD/MM/YYYY') AND TO_DATE('03/10/2010','DD/MM/YYYY') "
                    + "AND F.ETC_QTY > 0 AND F.RESOURCE_ID = 5039419"; 
                Statement statement = _baseConnection.createStatement();
                ResultSet resultSet = statement.executeQuery(query);
                while (resultSet.next()) {
                    Date d = resultSet.getDate("DATE_");
                    System.out.println(sdf_yyyyMMddHHmmssSSS.format(d));
                }
     
            } catch (Exception e) {
                e.printStackTrace();
            } 
        }
     
    }
    Exécuté sur ma machine de dev (Windows XP, JDK 1.6_13, Driver Oracle ojdbc14-9i-9.2.0.5.jar)
    j'ai le résultat suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    2010/09/06 00:00:00:000
    2010/09/13 00:00:00:000
    2010/09/20 00:00:00:000
    2010/09/27 00:00:00:000
    Exécuté sur une machine de prod (Windows XP, JDK 1.6_13, Driver Oracle ojdbc14-9i-9.2.0.5.jar) (config équivalente donc)
    j'ai le résultat suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    2010/09/05 00:00:00:000
    2010/09/12 00:00:00:000
    2010/09/19 00:00:00:000
    2010/09/26 00:00:00:000
    Soit un décalage de 24h sur toutes mes dates !!!
    Peu pratique pour une bonne exécution du programme.

    Une idée ?
    Merci à tous de votre aide

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Les machines sont surement configurés avec un fuseau horaire différent.

    Rajoutes un " z " dans ton pattern de date pour voir le fuseau horaire qui est utilisé.


    a++

  3. #3
    Membre confirmé Avatar de GAEREL
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 160
    Par défaut
    Malheureusement non :

    En prod :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    2010/09/05 00:00:00:000 CEST
    2010/09/12 00:00:00:000 CEST
    2010/09/19 00:00:00:000 CEST
    2010/09/26 00:00:00:000 CEST
    En dev :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    2010/09/06 00:00:00:000 CEST
    2010/09/13 00:00:00:000 CEST
    2010/09/20 00:00:00:000 CEST
    2010/09/27 00:00:00:000 CEST

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Tu accèdes à la même base de données ou à une copie ?
    Que te renvoi la même requête via une console Oracle ?


    a++

  5. #5
    Membre confirmé Avatar de GAEREL
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 160
    Par défaut
    Dans les deux cas j'accède exactement à la même base.

    En dev :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    C:\WINDOWS\system32>sqlplus login/password@BASE
     
    SQL*Plus: Release 9.2.0.1.0 - Production on Lu Sep 6 11:53:29 2010
     
    Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
     
     
    ConnectÚ Ó :
    Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
    JServer Release 9.2.0.4.0 - Production
     
    SQL> SELECT DISTINCT TRUNC(F.FACT_DATE,'DAY') AS DATE_ FROM NIKU.NBI_PRT_FACTS F
     WHERE F.PROJECT_ID = 5003779 AND F.FACT_DATE BETWEEN TO_DATE('06/09/2010','DD/M
    M/YYYY') AND TO_DATE('03/10/2010','DD/MM/YYYY') AND F.ETC_QTY > 0 AND F.RESOURCE
    _ID = 5039419;
     
    DATE_
    --------
    06/09/10
    13/09/10
    20/09/10
    27/09/10
     
    SQL>
    En prod :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    C:\Documents and Settings\Niku>sqlplus login/password@BASE
     
    SQL*Plus: Release 9.2.0.1.0 - Production on Mon Sep 6 11:58:12 2010
     
    Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
     
     
    Connected to:
    Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
    JServer Release 9.2.0.4.0 - Production
     
    SQL> SELECT DISTINCT TRUNC(F.FACT_DATE,'DAY') AS DATE_ FROM NIKU.NBI_PRT_FACTS F
     WHERE F.PROJECT_ID = 5003779 AND F.FACT_DATE BETWEEN TO_DATE('06/09/2010','DD/M
    M/YYYY') AND TO_DATE('03/10/2010','DD/MM/YYYY') AND F.ETC_QTY > 0 AND F.RESOURCE
    _ID = 5039419;
     
    DATE_
    ---------------
    05-SEP-10
    12-SEP-10
    19-SEP-10
    26-SEP-10
     
    SQL>
    Là où j'ai vraiment du mal à comprendre c'est que dans mon SQL j'ai un BETWEEN '06/09/2010' AND '03/10/2010'.
    Comment peut il me ramener la ligne : '05-SEP-10' ?

  6. #6
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Je penses toujours à un problème de configuration du fuseau horaires... mais apparemment il faudrait se tourner vers la conf d'Oracle (et là je ne peux pas vraiment t'aider).

    a++

Discussions similaires

  1. [Conception] Probléme de récupération de date
    Par jive dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/06/2006, 22h30
  2. Réponses: 1
    Dernier message: 14/06/2006, 10h22
  3. aide pour récupération de date
    Par tribaleur dans le forum ASP
    Réponses: 5
    Dernier message: 31/05/2006, 15h09
  4. [SQL] Récupération de date
    Par t-die dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 19/01/2006, 21h27
  5. récupération des dates d'un fichier
    Par Bleuarff dans le forum Langage
    Réponses: 6
    Dernier message: 22/11/2005, 01h50

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