Insérer une date dans Mysql

Par Sanae, il y a 8 ans


Je souhaite que quelqu'un m'aider, je veux insérer dans ma BD(Mysql) une date , sachant que je travaille application jee (JSP et servlet),
que doit être le type de la date dans ma BD et aussi dans mon formulaire?
Je vous remercie d'avance.

3 réponses

Huggy, il y a 8 ans

Avec JDBC tu as au moins quatre solutions pour insérer une date à partir d'une java.util.Date

String sql = "INSERT INTO personne (AGE, NOM, DATENAIS) VALUES (?, ? , ?)"; // pas besoin de mettre d'apostrophes autour des paramètres // on prépare la requête PreparedStatement stmt = conn.prepareStatement(sql); // on lui passe des arguments int age = 10; String nom = "solution avec getTime"; java.util.Date noel = new java.util.Date(); //== premiere solution SQLDate======================================== stmt.setInt(1, age); // le premier argument commence à 1 stmt.setString(2, nom); stmt.setDate(3, new java.sql.Date(noel.getTime())); // n'insert pas le temps !!!! stmt.execute(); //== deuxieme solution SimpleDateFormat======================================== stmt.setInt(1, age); // le premier argument commence à 1 stmt.setString(2, "Solution avec format iso"); SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String strDate = fmt.format(noel); stmt.setString(3, strDate); // passage de l'argument String pour la date stmt.execute(); //==troisieme solution Timestamp======================================== stmt.setInt(1, age); // le premier argument commence à 1 stmt.setString(2, "Solution avec timestamp"); stmt.setTimestamp(3, new java.sql.Timestamp(noel.getTime())); // ok date + time stmt.execute(); //== quatrième solution avec LocalDateTime (java8) stmt.setInt(1, age); // le premier argument commence à 1 stmt.setString(2, "Solution LocalDateTime avec timestamp"); LocalDateTime lc = LocalDateTime.now(); stmt.setTimestamp(3, Timestamp.valueOf(lc)); // ok date + time stmt.execute();
Huggy, il y a 8 ans

Pour lire une java.sql.Date depuis un recordset :

String sql = "SELECT age, nom, datnaissance FROM personne"; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); // on utilise un formatage SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); while (rs.next()) { System.out.println("age = " + rs.getInt("age") + " naissance = " + fmt.format(rs.getTimestamp("datnaissance"))); } // sinon pour passer de java.sql.Date à java.util.Date java.util.Date newDate = rs.getTimestamp("datnaissance");
Huggy, il y a 8 ans

Pour réponde à ta question, si tu veux la date et l'heure il faut utiliser le type DATETIME