【发布时间】:2017-07-28 00:10:14
【问题描述】:
所以我的数据库中有一个带有预订的表。 在 Java 中,我只想展示今天及以后的保留。
PreparedStatement statement = con.prepareStatement(
"SELECT reservatieID,klanten.voornaam,klanten.achternaam,kamerID,startDatum,eindDatum "
+ "FROM reservatie "
+ "INNER JOIN klanten ON reservatie.klantID = klanten.klantID"
+ "WHERE eindDatum =>?");
String now = basisLogin.getDate();
statement.setString(1, now);
ResultSet resultSet = statement.executeQuery();
这是我的代码。今天日期的字符串格式如下:yyyy-MM-dd
这是我得到的错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have anerror in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'eindDatum >'2017-03-07'' at line 1
java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
我做错了什么?
【问题讨论】:
-
您想使用
PreparedStatament#setDate而不是PreparedStatament#setString,并传入通过转换String值获得的java.sql.Date值。 -
你需要传递一个 Date 对象而不是 String 对象。
-
运算符是
>=,而不是=>,您在WHERE之前缺少一个空格。 -
现在可以使用了。谢谢大家!