Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL datetime não retornando hora


Você precisa usar os métodos getTime() ou getTimestamp() conforme sugerido no comentário de Thomas. Mas para dar um exemplo...

Digamos para uma tabela que você consulta assim:rs = stmt.executeQuery("select timeCol, dateCol, dateTimeCol from dateTimeTable");

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

Se você quiser usar o objeto de data Java:
java.util.Date dbSqlTimeConverted = new java.util.Date(dbSqlTime.getTime());
java.util.Date dbSqlDateConverted = new java.util.Date(dbSqlDate.getTime());

Eu também verificaria JodaTime para trabalhar com datas em Java, torna a vida muito mais simples.

Finalmente, vale a pena notar que existem algumas diferenças entre Timestamp e DateTime no MySQL. Ou seja, o Timestamp tem um fuso horário e o servidor retornará um Timestamp consultado na hora local do servidor (o que pode ser irritante). Meu conselho é usar DateTime e sempre manter datas/horas no mesmo fuso horário (ou seja, UTC). Consulte http://dev.mysql.com/doc/refman/ 5.0/pt/datahora.html