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

プリペアドステートメントを使用してpostgresqlにタイムゾーン付きのタイムスタンプを挿入するにはどうすればよいですか?

    基本的な問題は、java.sql.Timestampにタイムゾーン情報が含まれていないことです。いつも「現地のタイムゾーン」だと思います。

    私が考えることができる解決策は、PreparedStatementでパラメーターを使用するのではなく、SQLでタイムゾーンリテラルを使用することです。

    update foo
      set ts_col = timestamp with time zone '2012-08-24 14:00:00 +02:00'`;
    

    別の可能な解決策は、to_timestamp()を使用するPrepareStatementに適切にフォーマットされた文字列を渡すことです:

    String sql = "update foo set ts_col = to_timestamp(?, 'yyyy-mm-dd hh24:mi:ss')"; 
    PreparedStatement pstmt = connection.prepareStatement(sql);
    pstmt.setString(1, "2012-08-24 14:00:00 +02:00");
    


    1. MYSQlはコメント付きのブログ投稿のテーブルを最適化します

    2. MySQL:4つのテーブルには-多くの-スルー結合がありますか?

    3. PerconaXtraDBクラスターの監視-主要な指標

    4. MySQLTEXTのメモリ割り当て