Я полный noob для java и sqlite. Это должно быть просто, но я пытался и искал и не могу заставить его работать. У меня есть поле даты в SQL, которое я форматирую как дату sql (MM/dd/yy). Я хочу удалить на основе даты. На данный момент я просто пытаюсь отобразить строки на основе прошедшей даты.sql удалить по дате
Мой код для выполнения запроса является:
String query = "select * from Peter1Score where DateSort='"+convertSQLDate("09/20/15")+"'";
PreparedStatement pst = connection.prepareStatement(query);
ResultSet rs = pst.executeQuery();
Мой converSQLDate() является:
public static java.sql.Date convertSQLDate (String sqlDateIn)
{
java.sql.Date returnDate = null;
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yy");
Date parsed;
try
{
parsed = formatter.parse(sqlDateIn);
java.sql.Date sqlDate = new java.sql.Date(parsed.getTime());
returnDate = sqlDate;
}
catch (ParseException e)
{
e.printStackTrace();
}
return returnDate;
}
Я передаю 09/20/15 только для тестирования. У меня есть запись с этой датой, но она не выбрана.
Самый простой способ сделать это, чтобы использовать 'PreparedStatement' и передать дату (не строка) в запросе через' SETDATE (1, MyDate) '. Вам также может потребоваться передать «Календарь» для явного определения часового пояса, если ваша JVM будет находиться в другой зоне/локали, чем SQLite. –
Я думал, что это то, что я делаю. –
Вы не _binding_ любые переменные в инструкции (используя методы 'setXY()'). Вы просто конкатенируете строковое значение (результат 'Date.toString()') в литерал запроса. –