Ich glaube, dass das Manipulieren des String-Werts die einfachste und einfachste Lösung ist, also werde ich eine alternative Lösung vorstellen.
Aus der Oracle-Dokumentation für INTERVAL DAY TO SECOND Datentyp
und aus der Definition der Spalte START_TIME
In Ihrer Frage dürfen die Spaltenwerte nicht mehr als einen Tag umfassen und auch keine Sekundenbruchteile enthalten.
Von Oracle JDBC-Dokumentation
, der Datentyp INTERVAL DAY TO SECOND
wird der Java-Klasse oracle.sql.INTERVALDS
zugeordnet . (Dies ist eine der Klassen in der JAR-Datei des Oracle-JDBC-Treibers.)
Aus dem Javadoc
der Klasse oracle.sql.INTERVALDS
:
Sie wissen aufgrund der Definition der Spalte START_TIME
, dass nur die Bytes 4, 5 und 6 relevant sind , also null Tage und null Sekundenbruchteile. Da Sie jedoch in Ihrer Frage geschrieben haben, dass Sie die Sekunden ignorieren, sind nur die Bytes 4 und 5 relevant. Daher der Code zum Abrufen des Werts aus ResultSet
und das Konvertieren in einen String in Ihrem gewünschten Format ist:
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);