我正在尝试执行以下查询
INSERT INTO hotspot(timestamp) VALUES
(timestamp with time zone '2012-10-25 14:00:00 +05:00' at time zone 'EET');
我想将时间戳作为变量传递。
我的时间戳列是带有时区的时间戳类型。
你知道如何做到这一点吗?
当我这样做时......(Java,Postgresql)
String stm= "INSERT INTO hotspot(timestamp) VALUES(timestamp with time zone ? at time zone 'EET')";
pst = con.prepareStatement(stm);
pst.setString(1, "2012-08-24 14:00:00 +05:00");
pst.executeUpdate();
我在“$1”处或附近收到语法错误
无论如何我可以克服这个错误吗?先感谢您!!
更新:我尝试通过以下方式使用 setTimestamp ......
Calendar c=Calendar.getInstance(TimeZone.getTimeZone("GMT+05:00"));
String stm= "INSERT INTO hotspot(timestamp) VALUES(?)";
pst = con.prepareStatement(stm);
pst.setTimestamp(1,Timestamp.valueOf("2012-01-05 14:00:00"), c );
pst.executeUpdate();
我想数据库中的正确值应该是(关于我的本地时区是 EET (+02))
2012-01-05 11:00:00 +02
但是使用 pgadmin 我检查了值,我得到了
2012-01-05 14:00:00 +02
有什么建议么?