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

So formatieren Sie eine Datetime in SQLite

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.