相关疑难解决方法(0)

在postgresql中,当它是"没有时区的时间戳"时,Java中的参数类型应该是什么?

我试图通过Java和JDBC在po​​stgresql中运行查询.

postgresql中"table"的"activitydate"列是"没有时区的时间戳".我尝试使用String来传递日期但是没有用(org.postgresql.util.PSQLException:错误:运算符不存在:没有时区的时间戳>字符变化).

我应该使用什么类型而不是String来存储"start_date"和"end_date"并将它们传递给查询?

BTW SELECT COUNT(*) FROM table WHERE activitydate > '2014-11-20' AND activitydate < '2014-11-21' AND zipcode = 12345在pgadmin中完美运行.

public Response query(
          @QueryParam("start_date") String start_date,
          @QueryParam("end_date") String end_date,
          @QueryParam("zipcode") String zipcode
          ) throws Exception {
...
...

pstmt = conn.prepareStatement("SELECT COUNT(*) FROM table WHERE activitydate > ? AND activitydate < ? AND zipcode = ?");

pstmt.setString(1, start_date); 
pstmt.setString(2, end_date); 
pstmt.setString(3, zipcode); 
Run Code Online (Sandbox Code Playgroud)

更新:我将其更改为java.sql.Timestamp但仍然无法正常工作:

public Response query(
          @QueryParam("start_date") Timestamp start_date,
          @QueryParam("end_date") Timestamp end_date,
          @QueryParam("zipcode") String zipcode …
Run Code Online (Sandbox Code Playgroud)

java postgresql jdbc

5
推荐指数
2
解决办法
6291
查看次数

标签 统计

java ×1

jdbc ×1

postgresql ×1