SQLite
 sql >> Base de données >  >> RDS >> SQLite

Android - SQLite - SÉLECTIONNER ENTRE Date1 ET Date2

Ok, donc je ne pouvais pas faire fonctionner les dates de chaîne, j'ai donc dû convertir les dates de chaîne en dates de calendrier en heure Unix avant de les ajouter à la base de données SQLite et les reconvertir (heure Unix en dates de calendrier en chaîne) lors de leur affichage. Unix Time permet des calculs (trier par, trier par ordre croissant, entre, etc.) effectués sur les colonnes de date et c'est la meilleure méthode à utiliser après de longues heures d'essais et d'erreurs. Voici le code que j'ai fini par utiliser :

Cursor c = newDB.rawQuery("select ID, Date, Hours from " + tableName + " where Date BETWEEN '" + startDateQueryDate + "' AND '" + endDateQueryDate + "' ORDER BY Date ASC", null);

            if (c != null ) {
                if  (c.moveToFirst()) {
                    do {
                        int tempId = c.getInt(c.getColumnIndex("ID"));
                        long tempUnixTime = c.getLong(c.getColumnIndex("Date"));

                        //convert tempUnixTime to Date
                        java.util.Date startDateDate = new java.util.Date(tempUnixTime);

                        //create SimpleDateFormat formatter
                        SimpleDateFormat formatter1;
                        formatter1 = new SimpleDateFormat("dd/MM/yyyy", Locale.UK);

                        //convert Date to SimpleDateFormat and convert to String
                        String tempStringStartDate = formatter1.format(startDateDate);

                        int tempHours = c.getInt(c.getColumnIndex("Hours"));
                        results.add(+ tempId + "    Date: " + tempStringStartDate + "    Hours: " + tempHours);
                    }while (c.moveToNext());
                }
            }