sql >> Database >  >> RDS >> PostgreSQL

Hoe kan ik een tijdstempel met tijdzone in postgresql invoegen met een voorbereide verklaring?

Het fundamentele probleem is dat een java.sql.Timestamp geen tijdzone-informatie bevat. Ik denk dat het altijd wordt aangenomen dat het "lokale tijdzone" is.

Een oplossing die ik kan bedenken is om geen parameter in een PreparedStatement te gebruiken, maar een letterlijke tijdzone in SQL:

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

Een andere mogelijke oplossing zou kunnen zijn om een ​​correct geformatteerde String door te geven aan een PrepareStatement dat to_timestamp():

gebruikt
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-triggers invoegen en verwijderen in één?

  2. hoe maak ik een unieke php-pagina voor elke rij in een mysql-database?

  3. Sluit automatisch langlopende query's (MySql), Apache Tomcat DataSource

  4. Genereer een unieke lange ID voor een weergave in MySql