Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL datetime gibt keine Zeit zurück

Sie müssen die Methoden getTime() oder getTimestamp() verwenden, wie im Kommentar von Thomas vorgeschlagen. Um jedoch ein Beispiel zu geben...

Sagen Sie für eine Tabelle, die Sie abfragen, so:rs = stmt.executeQuery("select timeCol, dateCol, dateTimeCol from dateTimeTable");

Sie könnten Folgendes tun:

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

Wenn Sie das Java-Datumsobjekt verwenden möchten:

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

Ich würde mir auch JodaTime ansehen für die Arbeit mit Dates in Java, macht das Leben viel einfacher.

Schließlich ist es erwähnenswert, dass es einige Unterschiede zwischen Timestamp und DateTime in MySQL gibt. Das heißt, dass Timestamp eine Zeitzone hat und der Server einen abgefragten Timestamp in der Ortszeit des Servers zurückgibt (was ärgerlich sein kann). Mein Rat ist, DateTime zu verwenden und Daten/Zeiten immer in derselben Zeitzone (d. H. UTC) zu halten. Siehe http://dev.mysql.com/doc/refman/ 5.0/en/datetime.html