sql >> データベース >  >> RDS >> Oracle

インターバルタイプをHH:MMフォーマットにフォーマットする方法は?

    文字列値を操作するのが最も簡単で簡単な解決策だと思うので、別の解決策を紹介します。

    2番目のデータタイプまでの間隔日START_TIMEの定義から あなたの質問では、列の値は1日を超えることはできず、秒の小数部を含めることもできません。

    OracleからJDBCドキュメント 、データ型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);
    


    1. SQLサーバーからパスワードを復号化する方法は?

    2. XAMPP-エラー:MySQLが予期せずシャットダウンしました

    3. 前の行のMySQLから数量を引く

    4. MySQLとPHP-空の文字列ではなくNULLを挿入します