文字列値を操作するのが最も簡単で簡単な解決策だと思うので、別の解決策を紹介します。
2番目のデータタイプまでの間隔日
列START_TIME
の定義から あなたの質問では、列の値は1日を超えることはできず、秒の小数部を含めることもできません。
OracleからINTERVAL DAY TO SECOND
Javaクラスoracle.sql.INTERVALDS
にマップします 。 (これは、Oracle JDBCドライバーJARファイルのクラスの1つです。)
javadocから
クラスoracle.sql.INTERVALDS
の :
列START_TIME
の定義により、バイト4、5、および6のみが関連していることがわかります。 つまり、ゼロデイとゼロ小数秒です。しかし、あなたは秒を無視しているとあなたの質問に書いたので、それはバイト4と5だけが関係していることを意味します。したがって、ResultSet
から値を取得するためのコード 希望の形式の文字列に変換するには、次のようにします。
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);