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 :

Récupérer une date contenant les heures/minutes/secondes d'oracle en Java


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 120
    Points : 69
    Points
    69
    Par défaut Récupérer une date contenant les heures/minutes/secondes d'oracle en Java
    Bonjour,

    Je pense qu'un jour je m'en sortirai avec ma table mais chaque fois que je résoud un problème, j'en trouve un autre ...

    Voici ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    String sql = "SELECT Date, Nom, sum(Valeur) "
    +"FROM Classement "
    +"WHERE Date<TO_DATE('2006-01-30 00:00:00','YYYY-MM-DD HH24:MI:SS') "
    +"group by Nom, Date "
    +"ORDER BY Date, Nom";
    Le champ Date est de type DATE sous oracle.
    Quand je récupère une date venant de cette base en java je perds la notion horaire (HH24:MI:SS) du coup dans mon traitement des données par la suite rien ne va plus ! Voici mon code java pour la récupération :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    import java.sql.Date;
    [...]
     
    Context context = new InitialContext();
    DataSource dataSource = (DataSource) context.lookup(dataSourceName);
    connection = dataSource.getConnection();
    statement = connection.prepareStatement(sql); //sql contient ma requete
    resultSet = statement.executeQuery(); 
    Date maDate=null;
    [...]
    while (resultSet.next()){
       maDate=resultSet.getDate(1);
    Que la Date en base soit '2006-01-27 09:36:14' ou '2006-01-27 13:53:42', maDate = 1,138,316,400,000 ce qui semble correspondre (d'après un outil du web) au 26 janvier 2006 18h00 ...

    Comment puis je récupérer la date dans son intégralité ???
    J'en ai absolument besoin pour faire mes traitements sur les données.

    Merci d'avance

  2. #2
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    En Java le type java.sql.Date correspond au type SQL DATE qui ne contient pas de notion d'heure/minute/seconde... donc ce comportement est tout à fait normal.


    Le type DATE d'Oracle semble plutôt se rapprocher du type SQL TIMESTAMP, et donc tu devrais plutôt utiliser un objet java.sql.Timestamp qui peut contenir des infos allant de l'année aux nano-secondes

    a++

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 120
    Points : 69
    Points
    69
    Par défaut
    Parfait ça marche nickel avec Timestamp. Je pensais pas que je pouvais me servir de getTimestamp pour récupérer une Date mais a priori (même a posteriori d'ailleurs puisque ça marche) c'est tout bon.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    import java.sql.Timestamp;
    [...]
     
    Context context = new InitialContext();
    DataSource dataSource = (DataSource) context.lookup(dataSourceName);
    connection = dataSource.getConnection();
    statement = connection.prepareStatement(sql); //sql contient ma requete
    resultSet = statement.executeQuery(); 
    Timestamp maDate=null;
    [...]
    while (resultSet.next()){
       maDate=resultSet.getTimestamp(1);

    Merci beaucoup !

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 45
    Points : 38
    Points
    38
    Par défaut
    Merci pour l'update, ca va m'être utile.

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

Discussions similaires

  1. Script de compteur de jours, heures, minutes, secondes depuis une date
    Par Dsphinx dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 24/05/2013, 10h37
  2. [Flex3] Comparaison de dates ignorant les heures, minutes etc
    Par karami dans le forum Flex
    Réponses: 1
    Dernier message: 03/06/2011, 10h06
  3. Réponses: 1
    Dernier message: 30/09/2008, 20h40
  4. Group by date sans les heures: minutes: secondes
    Par KING_OF_GRACELAND dans le forum SQL
    Réponses: 13
    Dernier message: 13/03/2008, 10h37
  5. Comment tronquer une date (supprimer les heures)
    Par soazig dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 27/01/2006, 15h58

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