【问题标题】:MySQL - Java syntax error. Why this doesnt work?MySQL - Java 语法错误。为什么这不起作用?
【发布时间】: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 行"
  • 查询中的表名在哪里?
  • 那是错误!非常感谢你:)

标签: java mysql variables


【解决方案1】:

您的 SQL 查询至少缺少表的名称和 WHERE 子句的开头,它应该看起来更像这样:

SELECT ... FROM your_table WHERErent_date BETWEEN ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-16
    • 1970-01-01
    • 2021-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多