it-swarm.com.de

SQLite-Bestellung nach Datum1530019888000

Jeder Datensatz in meiner SQLite-Datenbank enthält ein Feld, das eine Date enthält, die als string im Format 'yyyy-MM-dd HH:mm:ss' gespeichert ist. 

Ist es möglich, die Datenbank abzufragen, um den Datensatz mit dem neuesten Datum zu erhalten, bitte?

59
duncanportelli

sie können es so machen

SELECT * FROM Table ORDER BY date(dateColumn) DESC Limit 1
127
paritosh

Für mich hatte ich meine Abfrage auf diese Weise, um mein Problem zu lösen

select *  from Table order  by datetime(datetimeColumn) DESC LIMIT 1

Da habe ich es als datetime nicht als datenspalte gespeichert

39
Ahmad Baraka

Wenn Sie sicher sind, dass das Textfeld das Format yyyy-MM-dd HH:mm:ss (Beispiel: 2017-01-02 16:02:55) hat, funktioniert es einfach für mich:

SELECT * FROM Table ORDER BY dateColumn DESC Limit 1

Ohne zusätzliche Datumsfunktion!

4
Nabi K.A.Z.

Sie können Ihre Spalte "sent_date_time" in das Format JJJJ-MM-TT umwandeln und dann nach Datum sortieren 

1 ) substr(sent_date_time,7,4)||"-"||substr(sent_date_time,1,2)||"-"||substr(sent_date_time,4,2) as date
2) order by date desc
3
bpatel

Sie müssen es in einen Unix-Zeitstempel konvertieren und dann vergleichen:

SELECT * FROM data ORDER BY strftime('%s', date_column) DESC

Dies kann jedoch ziemlich langsam sein, wenn es viele Zeilen gibt. Die bessere Vorgehensweise wäre, standardmäßig Unix-Zeitstempel zu speichern und einen Index für diese Spalte zu erstellen.

3
Zaffy

In meinem Fall funktioniert alles gut ohne Casting Spalte, um 'Datum' einzugeben. Einfach durch Angabe des Spaltennamens mit Doppel Anführungszeichen wie folgt:

SELECT * FROM 'Repair' ORDER BY "Date" DESC;

Ich denke, dass SQLite Casting von sich aus oder so ähnlich macht, aber wenn ich versuche, die Date-Spalte selbst zu "gießen", hat es nicht funktioniert. Und es gab keine Fehlermeldungen.

1
user3765475
0
kofifus