Возникли проблемы с оператором sql для извлечения записи между двумя метками времени. Это просто дает мне исключение NullPointerException, и я думаю, что это просто синтаксическая ошибка, которую я искал, и я ничего не мог найти. Это заявление:Ошибка синтаксиса оператора SQL
private static final String strGetRecordByDate =
"SELECT * FROM APP.MYTABLE " +
"WHERE MYDATE >= ?, AND MYDATE <= ? " +
"VALUES (?, ?)";
создания заявление:
stmtGetRecordByDate = dbConnection.prepareStatement(strGetRecordByDate);
Исключение NullPointer показывает на stmtGetRecordByDate.clearParameters():
public Vector getRecordByDate(Date datefrom, Date dateto){
Vector<String> records = new Vector<String>();
ResultSet results = null;
java.sql.Date sqlDatefrom = new java.sql.Date(datefrom.getTime());
java.sql.Date sqlDateto = new java.sql.Date(dateto.getTime());
try {
stmtGetRecordByDate.clearParameters();
stmtGetRecordByDate.setDate(1, sqlDatefrom);
stmtGetRecordByDate.setDate(2, sqlDateto);
results = stmtGetRecordByDate.executeQuery();
while (results.next()) {
int id = results.getInt(1);
String entry = results.getString(2);
records.add(entry);
}
} catch(SQLException sqle) {
sqle.printStackTrace();
}
return records;
}
Остальная часть запросов и заявлений работать нормально поэтому я знаю, что сама база данных в порядке, есть что-то не так с этим.
Любые предложения были бы замечательными. Спасибо!
Ха-ха, да, извините заблудившийся, не был в коде просто неправильной. WHERE BETWEEN отлично работает благодаря – Ross
Как использовать параметры, если я не могу использовать VALUES? – Ross
@stroduces: Ваши вызовы 'stmtGetRecordByDate.setDate' связывают значения с заполнителями. 'VALUES' обычно используется только с INSERT. –