Java准备的语句等于时间戳字段上的日期比较

Java准备的语句等于时间戳字段上的日期比较,java,postgresql,jdbc,timestamp,postgresql-9.5,Java,Postgresql,Jdbc,Timestamp,Postgresql 9.5,表中有两个带时间戳的字段。我想比较一下日期是否相等。附件日期::日期=?它不起作用 以下是我的代码: String AttendaceSql = "SELECT * FROM attandence WHERE attandencedate::date = ? AND userid=?"; PreparedStatement pstmtAttendance = null; pstmtAttendance = DB.prepareStatement (AttendaceSql); ResultS

表中有两个带时间戳的字段。我想比较一下日期是否相等。附件日期::日期=?它不起作用

以下是我的代码:

String AttendaceSql = "SELECT * FROM attandence WHERE attandencedate::date =  ? AND userid=?";
PreparedStatement pstmtAttendance = null;
pstmtAttendance = DB.prepareStatement (AttendaceSql);

ResultSet rsAtt = null;
try {
    Date dateFormat = new Date(logdate.getTime());
    pstmtAttendance.setDate(1, dateFormat);
    pstmtAttendance.setInt(2, userID);

    rsAtt = pstmtAttendance.executeQuery ();

    while (rsAtt.next ())
    {
        flag=true;
        AttendaceId = rsAtt.getInt("attandence_id");
        UserId= rsAtt.getInt("userid");
        attDate = rsAtt.getTimestamp("attandencedate");
        System.out.println(AttendaceId+","+UserId+","+logdate+","+attDate);
    }

while循环中的attDate=rsAtt.getTimestamp(“attendencedate”);
使用getDate()更改此选项;键入。

您的问题是什么?“您不应该将变量直接粘贴到SQL中。请使用查询参数,而应使用“嗯@khelwood,他确实使用了准备好的语句。”。。这里有什么问题?在表中,我附加了带有时间戳数据类型的AttendenceDate字段。我在Java中有一个Java.sql.timestamp类型的变量。我需要用java编写一个select查询,其中attendenceDate=variable。只需比较日期,无时间。等于不返回任何数据。“但比一切都好,比一切都好。”雷蒙德尼兰德没问题,只是自从我留下那个评论后,他完全重写了他的问题。