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

Collection et Stream Java Discussion :

comment inserer champs date ?


Sujet :

Collection et Stream Java

  1. #1
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 36
    Par défaut comment inserer champs date ?
    salut tous le monde
    svp je veux inserer un chaps date debut dnas ma base donne j'ai convertie mais ca marche pas
    voici le code
    SimpleDateFormat format_en = new SimpleDateFormat("dd/MM/yyyyy");
    String Date_deb=request.getParameter("Date_debut");
    Date date_d = format_en.parse(Date_deb);

    String rs="insert into T_tache(Date_debut) values ("+date_d+");
    mais s'insere rien dans ma base donne sous forme access

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Si tu veux utiliser le "type" date directement, utilise un prepared statement, tu pourra lui passer un objet Date. Si tu veux absoluement construire une string de requete comme tu fait, il va falloir convertir la date en une string dans le format reconnu par ta DB

  3. #3
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    Bonjour,

    en passant par un PrepareStatment on peut définir le type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    String sql = "insert into T_tache(Date_debut) values (?)";
    PreparedStatement pstmt = connection.prepareStatement(sql);
    pstmt.setDate(1, date_d);
    ...
    pstmt.executeUpdate();
    attention en fonction du type de date dans la base, il peut être nécessaire d'utiliser setTime() ou setTimestamp

  4. #4
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 36
    Par défaut
    merco fnobb pour la réponse mais ca marche pas
    j'essaye avec prepared statement mais j'ai une erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    cannot find symbole
    symbol  : method setDate(int,java.lang.String)
    location: interface java.sql.PreparedStatement
        pstmt.setDate(1,dn);
    tchize_ comment faire si je veux faire la 2eme methode convertir selon format ma base donne ;la format de ma base donne est 1988-06-21(yyyy-MM-dd)

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    avec la méthode format de SimpleDateFormat. Sinon, pour le prepared statement, la méthode, c'est setDate(int,java.sql.Date), pas setDate(int, java.lang.String)
    L'api sur les prepared statement est ici, un coup d'oeil ne fait pas de tord

  6. #6
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 36
    Par défaut
    merci tchize_ pour la réponse mais ca marche pas
    voila un petit code que j'essayer avec simpleDateFormat convertir string en format datef mais ca marche pas j'ai erreur
    DateFormat df=new SimpleDateFormat("dd/MM/yyyy");
    import java.text.DateFormat;
    mport java.text.SimpleDateFormat;
    import java.text.ParseException;
    import java.util.Date;
    try
    {
    dn=request.getParameter("txtDate");
    Date date_deb=df.parse(dn);
    Date redate_d=df.format(date_deb);
    }
    catch(ParseException e)
    {e.printStackTrace();}
    }
    il m'affiche erreur suivant
    typ incompatibles found : java.lang.String
    required: java.util.Date
    Date r=df.format(today);

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Tu compte poster toutes tes erreurs de compilation alors que les messages sont clair? On peut pas lire la doc à ta place. On t'oriente vers les api a utiliser, faut faire un effort pour les lire!

  8. #8
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 36
    Par défaut
    non j'ai lu doc java mais j'etais trompee stp dis moi est ceque le message qui est apparue ke type incompatibles que le champs df.format(today) n'est pas convertie il prend la valeur lang string et champ date est de type date lorsque je veux faire Date d =df.format(today);il ya types incompatybles

  9. #9
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    public final String format(Date date)

    Formats a Date into a date/time string.

    Parameters:
    date - the time value to be formatted into a time string.
    Returns:
    the formatted time string.
    Qu'est-ce que t'arrive pas à comprendre là?

  10. #10
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 36
    Par défaut
    désolée tchize_pour le derangementmais j'arrive pas à résourdreil fallait rendre le projet lundi a l'école et j'arrive pas à résourdre probleme .


    je travaille sur jsp /servlet pour recuperer le chans date depauis formulaire jsp il fallait faire
    String date_deb=request.getParameter("txtdatedebut")
    pour convertir en date j'ai passer par SimpleDateFormat

    mais le probleme c'est k'il s'affiche sous format java.lang.String il faut etre un champd de type java.util.date ja sais ou erreur comment rendre le format que j'ai java.lang.String etre type date


    ca m'enerve

  11. #11
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    un type Date n'as pas de format en soit. Le format ne sert que pour la convertion en string et vice-versa. C'est comme vouloir préciser le format d'un type int, çà n'a pas de sens.

  12. #12
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 36
    Par défaut
    merci tchize_ pour la réponse mais koi faire maintenant pour résourdere probleme

  13. #13
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    soit utiliser prepared statement comme indiqué plus haut
    Soit tu tu veux aboslument mettre ta date directement dans la string sql, utilise DateFormat.format() comme aussi indiqué plus haut......

  14. #14
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 36
    Par défaut
    merci tchize_ encore une fois ,stp je suis trompée lorsque j'ouvre ma base donne access la format de date est sous format date abrége dd/MM/yyyyy 16/05/2008
    et lorsque je fais dans mon code rs.getDate la date s'affiche sous format yyyy/MM/dd (2008-05-16)ma question est bete c'est koi la format de ma date
    pour faire dateformat

  15. #15
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    SimpleDateFormat donne toute la description des éléments formant le format de date, à toi d'y prendre ce dont tu as besoin. Donc, encore une fois, lire la doc, tout y est mis.

    Et c'est quoi ce rs.getDate()?, c'est quoi rs? un row?

  16. #16
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 36
    Par défaut
    rs.getDate( "Date_debut") c'est pour récuperer le le champs date debut existe dans la base donne commers.getString...

    stp peut tu me donnex exemple d'utilisation de SimpleDateFormat ou preparedStatement
    Le problème est que j'ai en entrée une chaine du type dd/MM/yyyy.

    Exemple: 10/04/1985

    Et je souhaiterais avoir en sortie une chaine ou une date au format dd/MM/yyyy

    Exemple: 10/04/1958

    Comment cela est-il réalisable???

  17. #17
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Le problème est que j'ai en entrée une chaine du type dd/MM/yyyy.

    Exemple: 10/04/1985

    Et je souhaiterais avoir en sortie une chaine ou une date au format dd/MM/yyyy
    Heuu, tu veux convertir "10/04/1985" en "10/04/1985"???? Je crois qu'il y a pas besoin de conversion pour çà ^^

  18. #18
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 36
    Par défaut
    bon j'explique mon soucis en détail

    j'ai une formulaire avec zone text txtdate et bouton rechercher
    je veux entrer une date dans zone text et je veux l'afficher par exemple les differents personelle qui ont ne le 7/06/1984 par exemple .ma base donne est sous access j'ai 3 champs code_personne,nom,datenaissance est de type date format abrege cad 06/05/1984 par exemple
    dans jsp j'ai fait le code suivant
    [QUOTE
    <%@ page import="java.sql.*" %>

    try
    {
    String date_n=request.getParameter("txtdate");
    String url="jdbc:odbc:personne";
    String driver="sun.jdbc.odbc.JdbcOdbcDriver";
    Class.forName(driver).newInstance();
    Connection conn=DriverManager.getConnection(url,"","");
    Statement stat=conn.createStatement();
    ResultSet rs=stat.executeQuery("SELECT * from personne where dateNaissance = '"+dn+"'");
    %>
    </p>


    <table align="center" bordercolor="#008080" border="1">

    <tr>
    <td bgcolor="#E6FFE6" align="center">num</td>

    <td bgcolor="#E6FFE6" align="center">Nom</td>
    <td bgcolor="#E6FFE6" align="center">date naissance</td>
    </tr>

    <% while(rs.next()){
    Date today2=rs.getDate("dateNaissance");

    %>
    <tr>
    <td><%=rs.getInt(1)%></td>
    <td><%=rs.getString(2)%></td>
    <td><%=today2%></td>// ici ma date lors d'affichage est affiche sous format 1984-06-15

    <%}
    conn.close();
    }
    </tr>

    </table>
    </body>
    </html>
    [/QUOTE]
    il m'affiche comme erreur type incompatible dans l'expression du critère.
    c'est normal puisque datenaissance est formatdate et dn est un string c'est pour cela il faut faire SimpleDateformat mais j'ai pas réussi a faire

  19. #19
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Qu'et-ce que t'arrive pas à faire avec simpleDateFormat()? Montre nous le code où tu l'utillise.

  20. #20
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 36
    Par défaut
    bon voila le code format de ma date dans ma base donnee est anglaise car lorsque j'ai mis
    select * from personne where datenaissance=#06/22/1984#
    ca marche.il m'affiche personnes qui ont ne le 6/22/1984.
    je sais pas ou s'il est probleme dans # ou pas
    bon voila le code avec Simpledateformat
    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>

    <%@page import ="java.text.SimpleDateFormat"%>
    <%@page import ="java.util.Date"%>
    <%@page import="java.text.ParseException"%>
    <%@page import ="java.text.DateFormat"%>
    <%@ page import="java.sql.*" %>
    <body>

    <% SimpleDateFormat df=new SimpleDateFormat("MM/dd/yyyy");
    try
    {

    String dn=request.getParameter("txtdate");
    Date date_naiss=df.parse(dn);


    String url="jdbc:odbc:personne";
    String driver="sun.jdbc.odbc.JdbcOdbcDriver";
    Class.forName(driver).newInstance();
    Connection conn=DriverManager.getConnection(url,"","");
    Statement stat=conn.createStatement();

    String d="#6/7/1984#"; //ca marche pour test
    // ResultSet rs=stat.executeQuery("SELECT * from personne where dateNaissance=#6/7/1984#");

    ResultSet rs=stat.executeQuery("SELECT * from personne where dateNaissance="+df.format(today1)+"");
    %>
    je sais pas si le probleme vient de # #

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Comment inserer dans mysql un champ date multi-valeurs
    Par pat84000 dans le forum Requêtes
    Réponses: 3
    Dernier message: 29/07/2010, 14h15
  2. Comment inserer une date en ASP dans Access?
    Par denis907 dans le forum ASP
    Réponses: 13
    Dernier message: 25/07/2007, 13h38
  3. Réponses: 4
    Dernier message: 27/04/2006, 09h22
  4. [Sql] Comment inserer un champs de type Date ?
    Par ridondo dans le forum DB2
    Réponses: 4
    Dernier message: 28/11/2005, 14h40
  5. Comment fixer une date dans un champ !
    Par LATHIOS dans le forum Access
    Réponses: 8
    Dernier message: 17/06/2005, 19h44

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