J'essaie de définir un horodatage dans ma base de données en utilisant java, mais dans ma table tout ce que je reçois est la date, et pas de temps (c'est-à-dire, ressemble à "2010-09-09 00:00:00"). J'utilise un champ datetime sur ma base de données mysql (car appearsdatetime is more common than timestamp). Mon code pour définir la date ressemble à ceci:Comment définir une date et heure SQL complète en utilisant java, et pas seulement la date?
PreparedStatement ps = conn.prepareStatement("INSERT INTO mytable (datetime_field) VALUES (?)")
java.util.Date today = new java.util.Date();
java.sql.Date timestamp = new java.sql.Date(today.getTime());
ps.setDate(1, timestamp);
ps.executeUpdate();
Comment régler la date pour inclure l'heure?
Modifier: J'ai changé le code comme ci-dessous, et il définit à la fois la date et l'heure.
PreparedStatement ps = conn.prepareStatement("INSERT INTO mytable (datetime_field) VALUES (?)")
java.util.Date today = new java.util.Date();
java.sql.Timestamp timestamp = new java.sql.Timestamp(today.getTime());
ps.setTimestamp(1, timestamp);
ps.executeUpdate();
Vous ne devriez pas traiter avec les formats de chaîne pour les dates/heures en leur permettant d'économiser ou de les lire à partir d'une base de données. Les abstractions de JDBC telles que 'setTimestamp' et' getTimestamp' sont là pour rendre cela inutile. – ColinD
thx, j'ai mal lu et n'ai pas remarqué sql. Mon erreur – oyo