Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL datetime non restituisce l'ora

Devi usare i metodi getTime() o getTimestamp() come suggerito nel commento di Thomas. Per fare un esempio però...

Dì per una tabella che esegui query in questo modo:rs = stmt.executeQuery("select timeCol, dateCol, dateTimeCol from dateTimeTable");

Potresti fare:

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

Se desideri utilizzare l'oggetto data Java:

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

Vorrei anche dare un'occhiata a JodaTime per lavorare con Date in Java, rende la vita molto più semplice.

Infine, vale la pena notare che ci sono alcune differenze tra Timestamp e DateTime in MySQL. Vale a dire che Timestamp ha un fuso orario e il server restituirà un Timestamp richiesto nell'ora locale del server (che può essere fastidioso). Il mio consiglio è di usare DateTime e mantenere sempre date/ora nello stesso fuso orario (es. UTC). Vedi http://dev.mysql.com/doc/refman/ 5.0/en/datetime.html