Vergleichen Sie Daten (als Zeichenfolge gespeichert) in Android SQLite-Datenbank?
Ich speichere Termine alsString
in meiner Datenbank in diesem Format:
YYYY-MM-DD HH:MM:SS
Welches ist eines der unterstützten Formate (http://www.sqlite.org/lang_datefunc.html). Jetzt möchte ich diese gespeicherten Daten (nun, Zeichenfolgen) mit anderen Daten vergleichen. Meine Daten werden in Spalte gespeichertcolumn_date
Also versuche ich Folgendes:
SELECT * FROM MyTable
WHERE
(Date(column_date) >= Date (2000-01-01) AND Datetime(column_date) <= Datetime (2050-01-01))
Während ich die Dokumentation lese,The date and time functions use a subset of IS0-8601 date and time formats. The date() function returns the date in this format: YYYY-MM-DD.
Also mache ich es wohl richtig - ich erstelle ein Datum aus einer gespeicherten Zeichenfolge und vergleiche es mit einem Datum, das aus einer anderen Zeichenfolge erstellt wurde.
Aber es funktioniert nicht, auch wenncolumn_date
Dieses Datum stammt aus diesem Jahr, und wie Sie sehen können, sind Start- und Enddatum sehr wohlwollend. Versucht auch dies (verwendet DatumZeit statt Datum):
SELECT * FROM MyTable
WHERE
(datetime(column_date) >= Date (2000-01-01) AND datetime(column_date) <= Datetime (2050-01-01))
und dies (verwenden Sie zwischen anstelle von <= und> =)
SELECT * FROM MyTable
WHERE
(Date(column_date) between Date (2000-01-01) AND Datetime (2050-01-01))
und alle anderen möglichen Kombinationen. Was zum Teufel mache ich falsch, bin ich dumm oder die Dokumentation lügt oder ich habe etwas sehr Wichtiges verpasst? Der Versuch, eine Lösung zu finden, dauert einige Stunden, aber es funktioniert nichts ...