2017-03-07 69 views
-3

所以我有一个表,我有保留的数据库。 在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  

我在做什么错?

+0

你想用'的PreparedStatament#setDate'代替'PreparedStatament#setString',并通过在java的' .sql.Date'的值,通过转换你的'String'值。 – GriffeyDog

+0

您需要传递一个Date对象而不是String对象。 – reos

+0

操作是'> =','不=>',和你错过了之前'WHERE'的空间。 – Andreas

回答

-3

使用的功能之一描述here,这取决于如果你想有时间。

例如:

...WHERE eindDatum => Current_date()"); 
+0

这不是* syntax *错误的原因。 – Andreas

+0

代码很好,并符合,所以没有语法错误。尝试在日期列中使用字符串时出现运行时错误。 –

+0

Java代码可能会编译,但这是SQL中的语法错误。所以说运行时异常('MySQLSyntaxErrorException')。该SQL不*很好*。 – Andreas

-3

用途: WHERE eindDatum => CURDATE()

+0

这不是* syntax *错误的原因。 – Andreas