SQLite
 sql >> Datenbank >  >> RDS >> SQLite

SQLiteException mit WHERE +KEY_Date+='+date+'

1) Fügen Sie kein wörtliches allfood hinzu Objekt zu einem String. SQL kann ein Java-Objekt nicht interpretieren.

Die Methode sollte eine der folgenden sein, weil allfood das ganze Objekt ist, brauchen Sie es als Parameter. Und es als date benennen ist einfach verwirrend.

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

sollte
Date=DATE_20170213

sein

2) Nein, das sollte es wirklich nicht, da Sqlite dieses Datumsformat nicht unterstützt. Zusätzlich vorangestelltes DATE_ verschwendet nur Speicherplatz in Ihrer Datenbank.

3) Bitte verwenden Sie dieses

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

Erstellen Sie einen Calendar -Objekt und verwenden Sie SimpleDateFormat um eine Zeichenfolge im Datumsformat korrekt zu erhalten.

Wenn Sie die letzte Option oben verwenden, erhalten Sie so etwas

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