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

'String'値を変換することによって得られる' .sql.Date'値です。 – GriffeyDog

+0

StringオブジェクトではなくDateオブジェクトを渡す必要があります。 – reos

+0

演算子は '> ='ではなく、 '=>'ではなく、 'WHERE'の前にスペースがありません。 – Andreas

答えて

-3

時間を含めるかどうかによって、hereのいずれかの機能を使用します。例えば

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

これは*構文*エラーの原因ではありません。 – Andreas

+0

コードはそのままで問題ありませんので、構文エラーはありません。日付列を含む文字列を使用しようとすると、ランタイムエラーになります。 –

+0

Javaコードがコンパイルされることがありますが、SQLでは構文エラーです。つまり、実行時例外( 'MySQLSyntaxErrorException')があります。そのSQLは*素晴らしい*ではありません。 – Andreas

-3

用途:あなたが代わりに `PreparedStatament#setString`の` PreparedStatament#setDate`を使用し、 `Javaで渡したいeindDatum => CURDATE()

+0

これは*構文*エラーの原因ではありません。 – Andreas

関連する問題