sql >> Databáze >  >> RDS >> Oracle

ResultSet.getTimestamp(date) vs ResultSet.getTimestamp(date, Calendar.getInstance(tz))

Nejprve si pletete java.util s java.sql . Při použití PreparedStatement#setDate() a ResultSet#getDate() , potřebujete java.sql.Date . Analogicky při použití PreparedStatement#setTimestamp() a ResultSet#getTimestamp() potřebujete java.sql.Timestamp .

Za druhé, je důležité pochopit, že java.sql.Date představuje pouze datum (rok, měsíc, den) a nic méně nebo více. Toto má být mapováno na SQL DATE typ pole. java.sql.Timestamp představuje časové razítko (rok, měsíc, den, hodina, minuta, sekunda, milisekunda), přesně jako java.util.Date a java.util.Calendar dělá. Toto má být namapováno na SQL TIMESTAMP nebo DATETIME typ pole.

Pokud jde o časová pásma, potřebujete je, když databáze neuchovává informace o časovém pásmu (všechny časové značky jsou tedy uloženy v UTC (GMT)). Poté můžete předat Kalendář ve kterém obsahuje informace o aktuálním časovém pásmu, takže ovladač JDBC může upravit časové razítko UTC na časové razítko odpovídající časovému pásmu. Pokud je to například GMT+1, pak ovladač JDBC přidá k časové značce jednu hodinu, než se vrátí.




  1. Dotaz MySQL pro nalezení posledních 3 dat v tabulce

  2. Chyba RODBC – připojení ODBC selhalo – nelze se připojit k MySQL s mým počítačem mac (mavericks)

  3. MySQL - rozložit/rozdělit vstup do uložené procedury

  4. MySQL CREATE USER s proměnnou?