gewusst wie: Abfragen in sqlite für verschiedene Datum-format
Ich bin mit sqlite
für die lokale Datenbank in Mobilfunk-und in meiner Datenbank, habe ich das Datum-Feld mit dem Namen der Spalte RN_CREATE_DATE
. Meine RN_CREATE_DATE
Spalte Wert wird in diesem format 'dd-mm-yy HH:MM:SS'
und ich wollen zum abrufen von Daten mit angegeben Datum. Was die genaue Abfrage für die, die ich habe versucht, mit unter Datenbank-Spalte und den Wert
**RN_CREATE_DATE
2012-07-27 11:04:34
2012-05-28 10:04:34
2012-07-22 09:04:34**
SELECT RN_CREATE_DATE
FROM DISPOSITION
WHERE RN_CREATE_DATE=strftime('%Y', '2012-07-28 12:04:34')
aber kein Ergebnis gefunden, nur helfen Sie mir mit diesem.
- Siehe die Dokumentation in sqlite.org/lang_datefunc.html für die details für
strftime
. - Ich überprüfte die Dokumentation und versucht so viele Dinge mit ihm...ich bin nur verwirrt, wie man eine genaue Abfrage für diese, da in meiner Datenbank habe ich verschiedene Datum-format und sqlite-strftime-Funktion abrufen diffrent ein.
- vielleicht möchten Sie aktualisieren die Frage mit detaillierten Informationen, besser mit einem Beispiel-Wert für die Datenbank.
Du musst angemeldet sein, um einen Kommentar abzugeben.
strftime
funktioniert wie folgt:Wenn Sie es verwenden möchten, in einem
WHERE
Klausel ersetzendatetime('now')
mit der datetime-Sie passen wollen, in derYYYY-mm-dd HH:MM:SS
format.Beispiel:
insert into t values('item', date('2012-09-13 12:44:22')
sind, die Sie erwarten, wählen Sie dieses Element, mit dem Beispiel oben mit dem vollen Datum-Zeit-Informationen?Ich möchte noch hinzufügen, einige Informationen über die Verwendung von SQLite Datum und Zeit mit UNIX epoch time:
Der UNIX-Epoche war 00:00:00 1970-01-01, d.h. Mitternacht des 1. Januar 1970. Die aktuelle Zeit auf UNIX-Rechnern (wie unter Linux) wird gemessen in Sekunden seit dieser Zeit.
SQLite-Unterstützung für diese Epoche die Zeit, und ich fand es sehr nützlich für die Verwendung als format für ein DateTime-Feld in SQLite.
Konkret, angenommen, ich möchte eine Ereignis-Tabelle, für Veranstaltungen wie Konzerte etc. Ich will eine fromDateTime Feld zu speichern, wenn die Veranstaltung beginnt. Kann ich tun, dass durch die Einstellung der fromDateTime eingereicht, um den Typ INTEGER, die als solche:
Kommen wir nun zu der Verwendung der UNIX-Epoche mit SQLite DateTime-Felder:
Nun, hier ist ein Beispiel für die Verwendung der oben genannten mit unserer Event-Tabelle:
Mir gefällt diese Lösung, weil es wirklich einfach zu arbeiten mit Programmiersprachen, ohne zu viel zu denken, der die verschiedenen Formate beteiligt SQLite DATE, TIME, DATETIME, etc. Daten-Typen.
strftime
generiert immer vierstellige Jahreszahlen, so dass Siesubstr
abschneiden, die ersten zwei Ziffern:Wäre es einfacher zum speichern der Werte in der Spalte in einem format, das direkt verstanden, die von SQLite.
dd-mm-YY HH:MM:SS
. Was genau ist dein problem jetzt?strftime('%Y', '2012-07-28 12:04:34')
gibt 2012, wie:aber die RN_CREATE_DATE ist vom Typ datetime, die erwarten, dass eine vollständige datetime-wie "2012-07-28 12:04:34'. was Sie wollen, könnte ganz einfach: