Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Menangani waktu dan stempel waktu MySQL di Java

Di sisi Java, tanggal biasanya diwakili oleh (dirancang dengan buruk, tetapi selain itu) java.util.Date . Ini pada dasarnya didukung oleh Epoch time dalam rasa long , juga dikenal sebagai stempel waktu. Ini berisi informasi tentang bagian tanggal dan waktu. Di Java, presisinya dalam milidetik.

Di sisi SQL, ada beberapa tipe tanggal dan waktu standar, DATE , TIME dan TIMESTAMP (di beberapa DB juga disebut DATETIME ), yang direpresentasikan dalam JDBC sebagai java.sql.Date , java.sql.Time dan java.sql.Timestamp , semua subclass dari java.util.Date . Presisinya bergantung pada DB, seringkali dalam milidetik seperti Java, tetapi bisa juga dalam hitungan detik.

Berbeda dengan java.util.Date , java.sql.Date hanya berisi informasi tentang bagian tanggal (tahun, bulan, hari). Time hanya berisi informasi tentang bagian waktu (jam, menit, detik) dan Timestamp berisi informasi tentang kedua bagian, seperti java.util.Date tidak.

Praktik normal untuk menyimpan cap waktu di DB (dengan demikian, java.util.Date di sisi Java dan java.sql.Timestamp di sisi JDBC) adalah menggunakan PreparedStatement#setTimestamp() .

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

Praktik normal untuk mendapatkan cap waktu dari DB adalah dengan menggunakan 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. Cara Mengekstrak Substring Dari String di PostgreSQL/MySQL

  2. Tetapkan SEKARANG () sebagai Nilai Default untuk tipe data datetime?

  3. Bagaimana mencegah duplikat nama pengguna saat orang mendaftar?

  4. Cara Membuat API GraphQL Tanpa Server untuk MySQL, Postgres, dan Aurora

  5. Setara dengan RowID Oracle di MySQL