Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL datetime ne renvoie pas l'heure

Vous devez utiliser les méthodes getTime() ou getTimestamp() comme suggéré dans le commentaire de Thomas. Pour donner un exemple cependant...

Dites pour une table que vous interrogez comme ceci :rs = stmt.executeQuery("select timeCol, dateCol, dateTimeCol from dateTimeTable");

Vous pourriez faire :

java.sql.Time dbSqlTime = rs.getTime(1);
java.sql.Date dbSqlDate = rs.getDate(2);
java.sql.Timestamp dbSqlTimestamp = rs.getTimestamp(3);

Si vous souhaitez utiliser l'objet date Java :

java.util.Date dbSqlTimeConverted = new java.util.Date(dbSqlTime.getTime());
java.util.Date dbSqlDateConverted = new java.util.Date(dbSqlDate.getTime());

Je vérifierais également JodaTime pour travailler avec des dates en Java, rend la vie beaucoup plus simple.

Enfin, il convient de noter qu'il existe quelques différences entre Timestamp et DateTime dans MySQL. À savoir que l'horodatage a un fuseau horaire et que le serveur renverra un horodatage interrogé à l'heure locale du serveur (ce qui peut être ennuyeux). Mon conseil est d'utiliser DateTime et de toujours conserver les dates/heures dans le même fuseau horaire (c'est-à-dire UTC). Voir http://dev.mysql.com/doc/refman/ 5.0/fr/dateheure.html