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 :

sql.Date Comment l'inserer dans une Bd?


Sujet :

JDBC Java

  1. #1
    Membre averti Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Points : 409
    Points
    409
    Par défaut sql.Date Comment l'inserer dans une Bd?
    Voilà, je me demande comment creer une instance de la date du jour et l'inserer dans ma bd (hsqldb).

    L'insertion se fait via un preparedStatement et un setDate.

    J'ai beau essayer pas mal de truc mais ca ne fonctionne pas, j'aimerais bien qu'elle soit de la forme :15/06/2006.

    Merci d'avance
    Pourquoi ca marche jamais?Vive le café!

  2. #2
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Quelle est l'erreur renvoyée ?


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  3. #3
    Membre averti Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Points : 409
    Points
    409
    Par défaut
    En fait il n'y a pas d'erreur, juste une exception, et donc aucune insertion dans la base. Je voudrais juste savoir comment définir une sql.date en java afin que dans ma base, la date soit definie de cette manière :15/07/2006
    Pourquoi ca marche jamais?Vive le café!

  4. #4
    Membre averti Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Points : 409
    Points
    409
    Par défaut
    J'ai oublié de donner mon code de la date...:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.sql.Date date = java.sql.Date.valueOf("2004-10-20");
    Normalement ca devrait fonctionner ce genre de chose non?
    Pourquoi ca marche jamais?Vive le café!

  5. #5
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Une manière de contourner le problème serait de l'insérer en tant que String mais ce n'est pas envisageable si tu comptes utiliser ces dates dans tes requètes SQL


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  6. #6
    Membre averti Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Points : 409
    Points
    409
    Par défaut
    Autant pour moi, c'est de ma faute, une erreur s'était glissée dans ma base...enfin ca venait de moi encore désolé...
    Par contre dans ce cas, je met "Résolu" ou "Délestage"?
    Pourquoi ca marche jamais?Vive le café!

  7. #7
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Sinon tu le mets dirrectement dans ta requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String requete="select * from maTable where maDate = to_date('2004-10-20','YYYY-MM-DD');
    C'est juste une suggestion

    Fred
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  8. #8
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Bah en général la classe Date représente un TimeStamp que l'on peut par la suite formater comme on le veut.
    De même dans une base de données il est en général préférable d'utiliser un Timestamp qu'on pourra par la suite formatter selon la convenance, au lieu de stocker une date sous un format spécifique qui obligerait à faire de multiples conversions pour obtenir le mois, le jour, faire des conversions...
    Donc oriente toi plutôt vers un timestamp dans ta db, c'est en général un best practice
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  9. #9
    Membre averti Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Points : 409
    Points
    409
    Par défaut
    Ok merci je vais voir a car c'est vrai que là je fais ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ON[0][11]=calendar.get(Calendar.YEAR)+"-"+String.valueOf(calendar.get(Calendar.MONTH)+1)+"-"+calendar.get(Calendar.DAY_OF_MONTH );
     
    java.sql.Date date = java.sql.Date.valueOf(String.valueOf(ON[0][11]));
    pas top
    Pourquoi ca marche jamais?Vive le café!

  10. #10
    Membre averti Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Points : 409
    Points
    409
    Par défaut
    Je dois pas bien manipuler le Timestamp à mon avis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ON[0][11]=calendar.get(Calendar.DAY_OF_MONTH )+"-"+String.valueOf(calendar.get(Calendar.MONTH)+1)+"-"+calendar.get(Calendar.YEAR);//DATE
     
    Timestamp date = Timestamp.valueOf(String.valueOf(ON[0][11]));

    Voici mon erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: T
    tamp format must be yyyy-mm-dd hh:mm:ss.fffffffff
    Pourquoi ca marche jamais?Vive le café!

  11. #11
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Garde le timestamp pour ta base de données, pour java utilise la classe Date (c'est ce que j'utilise dans les mapping Hibernate donc ça doit également passer avec JDBC, un petit getDate sur le champ contenant le Timestamp doit faire l'affaire)
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  12. #12
    Membre averti Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Points : 409
    Points
    409
    Par défaut
    Ok ca fonctionne car quand je gardais la timestamp en java, pas moyen de l'inserer comme je voulais dans la base

    Encore merci et à toute.
    Pourquoi ca marche jamais?Vive le café!

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/09/2008, 20h40
  2. Réponses: 3
    Dernier message: 09/09/2008, 11h01
  3. [VBA-E] Comment copier des dates du contrôle calendar dans une boite de texte
    Par jeanpierreco dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/02/2007, 07h18
  4. [VB.Net] Comment insérer dans une BD ?
    Par zzzmoi dans le forum Accès aux données
    Réponses: 6
    Dernier message: 29/07/2006, 10h39
  5. Réponses: 4
    Dernier message: 16/06/2006, 03h29

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