sql >> Database >  >> RDS >> Mysql

MySQL datetime geeft geen tijd terug

U moet de methoden getTime() of getTimestamp() gebruiken, zoals voorgesteld in de opmerking van Thomas. Maar om een ​​voorbeeld te geven...

Zeg voor een tabel die u als volgt opvraagt:rs = stmt.executeQuery("select timeCol, dateCol, dateTimeCol from dateTimeTable");

Je zou kunnen doen:

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

Als u het Java-datumobject wilt gebruiken:

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

Ik zou ook JodaTime bekijken voor het werken met Dates in Java, maakt het leven veel eenvoudiger.

Ten slotte is het vermeldenswaard dat er een paar verschillen zijn tussen Timestamp en DateTime in MySQL. Namelijk dat Timestamp een tijdzone heeft en de server een opgevraagde Timestamp in de lokale tijd van de Server zal retourneren (wat vervelend kan zijn). Mijn advies is om DateTime te gebruiken en datums/tijden altijd in dezelfde tijdzone (d.w.z. UTC) te houden. Zie http://dev.mysql.com/doc/refman/ 5.0/en/datetime.html



  1. SQL Unieke beperking voor meerdere tabellen

  2. Hoe MySql op Mac te gebruiken

  3. ENUM's inschakelen in Symfony 2 / Doctrine

  4. Windows Azure VM-prestaties vergelijken, deel 1