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

Android – SQLite – WÄHLEN SIE ZWISCHEN Date1 UND Date2

Ok, also konnte ich String-Daten nicht zum Laufen bringen, also musste ich String-Daten in Kalenderdaten in Unix-Zeit konvertieren, bevor ich sie zur SQLite-Datenbank hinzufügte, und sie zurück konvertieren (Unix-Zeit in Kalenderdaten in String), wenn sie angezeigt wurden. Die Unix-Zeit ermöglicht Berechnungen (sortieren nach, aufsteigend sortieren, zwischen usw.), die für die Datumsspalten durchgeführt werden, und es ist die beste Methode, die nach langen Stunden des Versuchs und Irrtums verwendet werden kann. Hier ist der Code, den ich letztendlich verwendet habe:

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());
                }
            }