Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Obsługa dat i znaczników czasu MySQL w Javie

Po stronie Java data jest zwykle reprezentowana przez (źle zaprojektowany, ale na bok) java.util.Date . Zasadniczo jest wspierany przez Czas epoki w stylu long , znany również jako sygnatura czasowa. Zawiera informacje o częściach daty i godziny. W Javie precyzja jest w milisekundach.

Po stronie SQL istnieje kilka standardowych typów daty i czasu, DATE , CZAS i TIMESTAMP (w niektórych bazach danych nazywanych także DATETIME ), które są reprezentowane w JDBC jako java.sql.Data , java.sql.Time i java.sql.Timestamp , wszystkie podklasy z java.util.Date . Dokładność zależy od bazy danych, często w milisekundach, jak w Javie, ale może być również w sekundach.

W przeciwieństwie do java.util.Date , java.sql.Date zawiera tylko informacje o części daty (rok, miesiąc, dzień). Czas zawiera tylko informacje o części czasowej (godziny, minuty, sekundy) i znacznik czasu zawiera informacje o obu częściach, np. java.util.Date tak.

Normalna praktyka przechowywania znacznika czasu w bazie danych (stąd java.util.Date po stronie Java i java.sql.Timestamp po stronie JDBC) jest użycie Przygotowane oświadczenie#setTimestamp() .

java.util.Date date = getItSomehow();
Timestamp timestamp = new Timestamp(date.getTime());
preparedStatement = connection.prepareStatement("SELECT * FROM tbl WHERE ts > ?");
preparedStatement.setTimestamp(1, timestamp);

Normalną praktyką uzyskiwania znacznika czasu z bazy danych jest użycie ResultSet#getTimestamp() .

Timestamp timestamp = resultSet.getTimestamp("ts");
java.util.Date date = timestamp; // You can just upcast.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przeszukuj wszystkie kolumny tabeli, używając pojedynczego warunku WHERE z jednym słowem kluczowym w mysql

  2. Wyjaśnienie funkcji MySQL IF()

  3. Jak połączyć się z bazą danych za pomocą Sequel Pro

  4. Jak ClusterControl konfiguruje wirtualny adres IP i czego można się spodziewać podczas przełączania awaryjnego?

  5. Czy mogę przechowywać obrazy w MySQL?