Problem:
Sie möchten eine datetime-Spalte oder einen Wert in SQLite formatieren.
Beispiel:
Unsere Datenbank hat eine Tabelle namens ticket
mit Daten in den Spalten passenger_ID
, train_number
und sale_datetime
.
passagier_ID | Zugnummer | sale_datetime |
---|---|---|
245NX | 4505 | 2019-10-17 12:56:30 |
127RG | 3403 | 2019-10-17 11:45:23 |
567FH | 4505 | 2019-10-18 12:40:32 |
230AP | 6700 | 2019-10-18 13:20:20 |
118BB | 3403 | 2019-10-18 13:13:13 |
Lassen Sie uns für jeden Ticketverkauf die Fahrgast-ID, die Zugnummer sowie das Verkaufsdatum und die Verkaufszeit abrufen. Wir möchten das Verkaufsdatum so formatieren, dass Tag, Monat und Jahr durch Schrägstriche (/) getrennt angezeigt werden, mit einem Komma zwischen Jahr und Uhrzeit. Wir wollen nur die Stunde und Minute des Verkaufs.
Hier ist die Abfrage, die Sie schreiben würden:
Lösung:
SELECT passenger_ID, train_number, STRFTIME('%d/%m/%Y, %H:%M', sale_datetime) AS sale_formatted_datetime FROM ticket;
Hier ist das Ergebnis der Abfrage:
passagier_ID | Zugnummer | sale_formatted_datetime |
---|---|---|
245NX | 4505 | 17.10.2019, 12:56 |
127RG | 3403 | 17.10.2019, 11:45 |
567FH | 4505 | 18.10.2019, 12:40 |
230AP | 6700 | 18.10.2019, 13:20 |
118BB | 3403 | 18.10.2019, 13:13 |
Diskussion:
Verwenden Sie STRFTIME()
Funktion zum Formatieren von date\time\datetime-Daten in SQLite. Diese Funktion benötigt zwei Argumente. Das erste Argument ist eine Formatzeichenfolge, die das Datums-/Uhrzeitteilmuster enthält. In unserem Beispiel verwenden wir den Formatstring „%d/%m/%Y, %H:%M '. In dieser Zeichenfolge:
- %d ist ein zweistelliger Tag.
- %m ist ein zweistelliger Monat.
- %Y ist eine vierstellige Jahreszahl.
- %H ist eine zweistellige Stunde.
- %M ist eine zweistellige Minute.
Weitere Datums- und Zeitbezeichner finden Sie in der SQLite-Dokumentation.
Das zweite Argument ist der zu formatierende Zeit/Datum/Datum/Uhrzeit-Wert. Dies kann ein Ausdruck sein, der einen Zeit/Datum/Datum/Uhrzeit-Wert oder den Namen einer Zeit/Datum/Datum/Uhrzeit-Spalte zurückgibt. (In unserem Beispiel ist es die Spalte sale_datetime
.)
STRFTIME()
gibt das formatierte Datum und die Uhrzeit zurück. In unserem Beispiel enthalten das formatierte Datum und die Uhrzeit keine Sekunden und die Datumsteile werden durch Schrägstriche (/) anstelle von Bindestrichen (-) getrennt.