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 :

java.sql.Date + preparedstatement + heur, minute, second mois jour année


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 113
    Points : 65
    Points
    65
    Par défaut java.sql.Date + preparedstatement + heur, minute, second mois jour année
    Bonjour,

    Je veut récupérer la date actuel (jour, mois , ans, heur, minutes, secondes ….) pour la mettre dans un champ DATE, d’une base de donnée Oracle 9. J’utilise une « PreparedStatement » (Callable Statement) qui contient la methode « SetDate ».
    J’ai fait le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    .
    .
    .
    Date date = new java.sql.Date((new java.util.Date()).getTime());
    ps.setDate(2,date) ;
    .
    .
    .
    Le probléme c’est que la date ne contient que le jour, le mois et l’année, pas d’heure ni de minutes ni de second.
    Est-ce que quelqu'un peut me proposer une solution ??

  2. #2
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    Bonjour
    Lorsque tu dis que ta date ne contiens pas d'heure, c'est dans la base ?

    pour ce qui est de la création de ta date ceci serais mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Date date = new java.sql.Date(System.currentTimeMillis());
    ps.setDate(2,date) ;
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    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,


    java.sql.Timestamp

    Comme indiqué dans la doc, java.sql.Date ne comporte pas d'heure...

    a++

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 113
    Points : 65
    Points
    65
    Par défaut
    Mais je ne peut pas mettre un TimeStamp dans une colone DATE d'une table de base de donnée. J'aime bien changer cette colone en TimeStamp, mais j'ai pas le droit d'y toucher.
    Donc je peut conclure que il n 'y a occune solution avec JDBC. Sauf si je crée ma propre ligne string qui représente la date et je la mis directement dans la commande SQL sans passer par "cs.setDate ou cs.setTimeStam"

  5. #5
    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
    Citation Envoyé par freakfm Voir le message
    Mais je ne peut pas mettre un TimeStamp dans une colone DATE d'une table de base de donnée.
    Les colonnes DATE d'un table ne possèdent pas d'information relative aux heures/minutes/secondes...

    Tu ne dois pas utiliser un format SQL DATE mais un format spécifique à ton SGBD, mais avec un java.sql.Timestamp cela devrait marcher.

    a++

  6. #6
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 113
    Points : 65
    Points
    65
    Par défaut
    En faite Date dans Oracle 9 contient l'heur, minute et secondes, car j'ai la table qui est déja rempli par d'autre application "qui utilise des pure commande SQL (PL/SQL....). Tu as peut etre raison pour la java.sql.Date car la plus part de ses méthodes "getHeur...setSeconde etc..." sont Deprecated.
    Il se peut qu'il faut utiliser une autre classe qui peut etre compatible avec "setDate" des "PreparedStatement". On a déja d'autre base qui contient des TimeStamp. Mais bon. Ce n'est pas moi de décider de changer Date par TimeStamp car il faut modifier plusieur d'autre application. La seule solution que j'ai trouvé c'est de mettre 'SYSDATE' directement dans la commande SQL sans passer par Java.
    En tous cas je suis toujour interessé par trouvé une solution qui utilise Java.
    Merci

  7. #7
    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
    Citation Envoyé par freakfm Voir le message
    En tous cas je suis toujour interessé par trouvé une solution qui utilise Java.
    As-tu essayé de remplacer java.sql.Date par java.sql.Timestamp ?

    Je n'ai jamais parlé de toucher à la base de données !

    a++

  8. #8
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 113
    Points : 65
    Points
    65
    Par défaut
    Tu as raison. je savai pas qu'on peut mettre des Timestamp dans des Date.
    Merci

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

Discussions similaires

  1. Calcul de durée entre deux dates en années, mois, jours, heures, minutes, secondes et reste
    Par Invité dans le forum Algorithmes et structures de données
    Réponses: 19
    Dernier message: 02/10/2015, 12h31
  2. Réponses: 5
    Dernier message: 24/08/2015, 16h46
  3. Réponses: 3
    Dernier message: 24/09/2008, 16h23
  4. [HIBERNATE] date sans heure minute seconde
    Par _juel_ dans le forum Hibernate
    Réponses: 1
    Dernier message: 30/06/2006, 14h43

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