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

JDBCを使用したNLS_DATE_FORMAT

    JDBCドライバーからのNLSサポートは、Oracle10gで削除されました。 。とにかく、日付をフォーマットするためにOracle固有のNLS機能に頼らないことをお勧めします。

    Javaのデータベースから取得した日付をフォーマットするには、次のようにします。

    Connection conn = ods.getConnection();
    Statement stat = conn.createStatement();
    
    ResultSet rs = stat.executeQuery("select date_column from test_table");
    
    DateFormat format = new SimpleDateFormat('yyyy-dd-MM');
    System.out.println(format.format(rs.getDate(1));
    

    SimpleDateFormatのインスタンスは再利用可能ですが、スレッドセーフではないことに注意してください。 。

    Java 8を使用している場合は、代わりに新しく改良されたJavaTimeAPIを使用することをお勧めします。残念ながら、ResultSetはまだDateTimeのインスタンスを返すように更新されていないため、変換する必要があります。 DateTimeFormatter を確認してください。 およびこの質問 古いものから新しいものに変換する方法について。他の利点の中でも、DateTimeFormatterは完全にスレッドセーフです。

    古いスタイルと新しいスタイルのフォーマットパターンは同じです。 こちらのドキュメント 新しいもののために。




    1. SQLAlchemyはSSL接続を確認します

    2. 各行の列値に基づいて行を繰り返す

    3. MySQLの複数のサブクエリとクエリ全体

    4. ローリング期間の累計を作成する方法