SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

SQLiteException usando WHERE +KEY_Date+='+date+'


1) Não adicione um literal allfood objeto para uma String. SQL não pode interpretar um objeto Java.

O método deve ser qualquer um dos seguintes porque allfood é o objeto inteiro, você precisa dele como parâmetro. E nomeando-o como date é simplesmente confuso.
  • totalFat(Date date)
  • totalFat(String date)
  • totalFat(Calendar date)
  • totalFat(int year, int month, int dayOfMonth)

deve ser
Data=DATE_20170213

2) Não, realmente não deveria porque o SQLite não suporta esse formato de datas. Além disso, DATE_ pré-pendente está apenas desperdiçando armazenamento em seu banco de dados.

3) Por favor, não use isso
date= year +""+ month +""+ dayOfMonth

Crie um Calendar objeto e use SimpleDateFormat para obter corretamente uma string formatada com data.

usando a última opção acima, você teria algo assim
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
calendar.set(year, month, dayOfMonth);
String queryForDate = fmt.format(calendar.getTime());
// db.query(TABLE_NAME, null, new String[] {...  // TODO: Complete this