PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm cách nào để chèn dấu thời gian với múi giờ trong postgresql với câu lệnh đã chuẩn bị?

Vấn đề cơ bản là java.sql.Timestamp không chứa thông tin múi giờ. Tôi nghĩ rằng nó luôn được giả định là "múi giờ địa phương".

Giải pháp mà tôi có thể nghĩ đến là không sử dụng một tham số trong PreparedStatement, mà sử dụng một ký tự múi giờ trong SQL:

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

Một giải pháp khả thi khác có thể là chuyển một Chuỗi được định dạng đúng đến Chuẩn bị sẵn sàng sử dụng to_timestamp ():

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. XMLTABLE trong PostgreSQL

  2. Xuất tập lệnh CREATE cho cơ sở dữ liệu

  3. Làm cách nào để tạo hàm do người dùng xác định trong AWS Aurora RDS Postgres

  4. Cách nhận giá trị trung bình cho các khoảng thời gian trong Postgres

  5. Rails 3, ActiveRecord, PostgreSQL - Lệnh .uniq không hoạt động?