【发布时间】:2020-06-29 02:25:58
【问题描述】:
错误行在 "BETWEEN DATE_SUB(now(), interval " + days + " day) AND current_date() 附近突出显示,但此语句在 mysql 工作台上有效。 ' 所以,也许错误是在使用 between 或 date 的方式上。 我想做的事情是过滤数据,考虑到我的实际日期和之前的几天,我通过变量 days 在 "date_sub(now(), interval here the days days)" 中引入。 有没有正确或更有效的方法?
private void getStatement(int days) {
try {
DefaultTableModel model = new DefaultTableModel();
this.jtblReports.setModel(model);
Connection con = this.connection.getConexion();
PreparedStatement ps = null;
ResultSet rs = null;
String SELECT = "SELECT client_name, client_surname, client_dni,"
+ " game_name, rent_date, return_date, game_price from "
+ "rent_date BETWEEN DATE_SUB(now(), interval " + days + " day) AND current_date()";
ps = con.prepareStatement(SELECT);
rs = ps.executeQuery();
ResultSetMetaData rsMd = rs.getMetaData();
int columnsCant = rsMd.getColumnCount();
model.addColumn("CLIENT NAME");
model.addColumn("CLIENT SURNAME");
model.addColumn("CLIENT DNI");
model.addColumn("GAME");
model.addColumn("RENT DATE");
model.addColumn("RETURN DATE");
model.addColumn("GAME PRICE");
while (rs.next()) {
Object[] rows = new Object[columnsCant];
for (int i = 0; i < columnsCant; i++) {
rows[i] = rs.getObject(i + 1);
}
model.addRow(rows);
}
model.fireTableDataChanged();
} catch (SQLException e) {
e.printStackTrace();
}
}
【问题讨论】:
-
发布错误代码。
-
错误是“java.sql.SQLSyntaxErrorException:您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以了解在 'BETWEEN DATE_SUB(now( ), 间隔 7 天) AND current_date()' 在第 1 行"
-
查询中的表名在哪里?
-
那是错误!非常感谢你:)