sql >> Databasteknik >  >> RDS >> Mysql

MySQL datetime inte återvändande tid

Du måste använda metoderna getTime() eller getTimestamp() som föreslås i kommentaren av Thomas. Men för att ge ett exempel...

Säg för en tabell som du frågar så här:rs = stmt.executeQuery("select timeCol, dateCol, dateTimeCol from dateTimeTable");

Du kan göra:

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

Om du vill använda Java-datumobjektet:

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

Jag skulle också kolla in JodaTime för att arbeta med Dates i Java, gör livet mycket enklare.

Slutligen är det värt att notera att det finns några skillnader mellan Timestamp och DateTime i MySQL. Nämligen att Timestamp har en tidszon och servern kommer att returnera en efterfrågad Timestamp i Serverns lokala tid (vilket kan vara irriterande). Mitt råd är att använda DateTime och alltid hålla datum/tider i samma tidszon (dvs UTC). Se http://dev.mysql.com/doc/refman/ 5.0/en/datetime.html



  1. MySQL-transaktion över två databaser på olika servrar

  2. Varför behöver en oracle plsql varchar2-variabel en storlek men inte en parameter?

  3. Oracle infoga i tabell2 och ta sedan bort från tabell1, undantag om misslyckas

  4. MySQL bulk drop tabell där tabell som?