Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana cara memformat jenis Interval ke format HH:MM?

Saya percaya bahwa memanipulasi nilai string adalah solusi termudah dan paling sederhana, jadi saya akan menyajikan solusi alternatif.

Dari dokumentasi Oracle untuk tipe data INTERVAL HARI KE KEDUA dan dari definisi kolom START_TIME dalam pertanyaan Anda, nilai kolom tidak boleh lebih dari satu hari dan juga tidak boleh berisi pecahan detik.

Dari Oracle Dokumentasi JDBC , tipe data INTERVAL DAY TO SECOND memetakan ke kelas java oracle.sql.INTERVALDS . (Ini adalah salah satu kelas dalam file JAR driver Oracle JDBC.)

Dari javadoc kelas oracle.sql.INTERVALDS :

Anda tahu bahwa hanya byte 4, 5 dan 6 yang relevan karena definisi kolom START_TIME , yaitu nol hari dan nol detik pecahan. Tetapi karena Anda menulis dalam pertanyaan Anda bahwa Anda mengabaikan detik, itu berarti hanya byte 4 dan 5 yang relevan. Karenanya kode untuk mengambil nilai dari ResultSet dan mengubahnya menjadi string dalam format yang Anda inginkan adalah:

INTERVALDS intervalDS = (INTERVALDS) rs.getObject("START_TIME");
byte[] bytes = intervalDS.toBytes();
int hour = bytes[4] - 60;
int minute = bytes[5] - 60;
String result = String.format("%02d:%02d", hour, minute);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cari database Oracle untuk tabel dengan nama kolom tertentu?

  2. Oracle:Apakah klien oracle 10g bekerja dengan server 11g?

  3. Koneksi JDBC ke database Oracle menggunakan Sertifikat TLS

  4. Kesalahan:PLS-00428:klausa into diharapkan dalam pernyataan pilih ini

  5. Menginstal JDBC untuk Jboss EAP 6.3