我试图通过Java和JDBC在postgresql中运行查询.
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)