2017-03-07 73 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

相關問題