gpt4 book ai didi

java - 删除适用于 PgAdmin 3 但不适用于 Java JDBC 的查询

转载 作者:行者123 更新时间:2023-11-29 12:09:43 27 4
gpt4 key购买 nike

我正在尝试删除保存在数据库中的时间列表,其中日期(结束时间 - 时间戳)大于我对特定员工的引用日期(employeeId - 整数)。该查询在 pgAdmin III 上完美运行。但是我不能让它在 JDBC 中工作。它有效,但它会删除该特定员工的所有内容,而不仅仅是我想要的日期。我看起来它忽略了 Where 子句中的日期。另外,我没有得到任何异常(exception)。变量 nextDayTimestamp 输出如下: '2017-03-31 12:00:00.0'有人可以帮忙吗?

 public void deleteBigListOfPeriodOfWorkFutureOnly(int employeeId, LocalDate referenceDate) {
Connection myConn = null;
PreparedStatement myStmt = null;

try {

myConn = dataSource.getConnection();

LocalDate nextDay = referenceDate.plusDays(1);
Timestamp nextDayTimestamp = Timestamp.valueOf(LocalDateTime.of(nextDay, LocalTime.NOON));
String sql = "delete from working_time where working_time.end_time > ? and employee_id = ?";

myStmt = myConn.prepareStatement(sql);

myStmt.setTimestamp(1, nextDayTimestamp);
myStmt.setInt(2, employeeId);

myStmt.executeUpdate();

} catch (SQLException e) {
e.printStackTrace();
} finally {

CloseConnection.close(myConn, myStmt, null);
}


}
}

sample of working_time table

最佳答案

我认为首先当条件总是为真时你应该:

首先:打印 nextDayTimestamp 并确保它是有效的

其次:如果有效则在postgresql sql查询上尝试条件

关于java - 删除适用于 PgAdmin 3 但不适用于 Java JDBC 的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43149642/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com