sql >> Base de Datos >  >> RDS >> Mysql

MySQL datetime no regresa el tiempo

Debe usar los métodos getTime() o getTimestamp() como se sugiere en el comentario de Thomas. Sin embargo, para dar un ejemplo...

Digamos que para una tabla consulta de esta manera:rs = stmt.executeQuery("select timeCol, dateCol, dateTimeCol from dateTimeTable");

Podrías hacer:

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

Si desea utilizar el objeto de fecha de Java:

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

También revisaría JodaTime para trabajar con Fechas en Java, simplifica mucho la vida.

Finalmente, vale la pena señalar que existen algunas diferencias entre Timestamp y DateTime en MySQL. Es decir, que la marca de tiempo tiene una zona horaria y el servidor devolverá una marca de tiempo consultada en la hora local del servidor (lo que puede ser molesto). Mi consejo es usar DateTime y mantener siempre las fechas/horas en la misma zona horaria (es decir, UTC). Consulte http://dev.mysql.com/doc/refman/ 5.0/en/datetime.html