SQLite
 sql >> Database >  >> RDS >> SQLite

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

1) Non aggiungere un allfood letterale oggetto a una stringa. SQL non può interpretare un oggetto Java.

Il metodo dovrebbe essere uno dei seguenti perché allfood è l'intero oggetto, ne hai bisogno come parametro. E nominandolo come date è semplicemente confuso.

  • totalFat(Date date)
  • totalFat(String date)
  • totalFat(Calendar date)
  • totalFat(int year, int month, int dayOfMonth)

dovrebbe essere
Date=DATE_20170213

2) No, in realtà non dovrebbe perché Sqlite non supporta quel formato di date. Inoltre, DATE_ in attesa sta solo sprecando spazio nel tuo database.

3) Per favore non usarlo

date= year +""+ month +""+ dayOfMonth

Costruisci un Calendar oggetto e utilizzare SimpleDateFormat per ottenere correttamente una stringa formattata per la data.

usando l'ultima opzione sopra, avresti qualcosa del genere

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