Problem:
Sie möchten die Zeit aus einem String-Wert in MySQL extrahieren.
Beispiel:
Sie haben einen String-Wert, der wie folgt aussieht:
‘Wednesday, 10 February 2021, 12:30:20’
Sie möchten nur den Zeitteil „12:30:20“ extrahieren.
Lösung:
Hier ist die Abfrage:
SELECT DATE_FORMAT(STR_TO_DATE("Wednesday, 10 February 2021, 12:30:20", "%W, %d-%m-%Y, %T"), "%T");
Diskussion:
Um den Vorgang deutlicher zu veranschaulichen, erklären wir dies in zwei Teilen.
Zuerst müssen wir den String in einen Datumswert umwandeln. Dazu verwenden wir den STR_TO_DATE
Funktion. Die Abfrage sollte wie folgt aussehen:
SELECT STR_TO_DATE("Wednesday, 10 February 2021, 12:30:20", "%W, %d-%m-%Y, %T”);
Der Zweck des STR_TO_DATE
Funktion besteht darin, eine Textzeichenfolge in ein Datetime-Format zu konvertieren. Die Syntax für diese Funktion lautet wie folgt:
STR_TO_DATE(string, format);
Das erste Argument dieser Funktion ist die Zeichenfolge, die wir konvertieren möchten. Das zweite Argument gibt das Format der Zeichenfolge an. In unserem Fall verwenden wir die folgenden Parameter:
- %W:Name des Wochentags von Sonntag bis Samstag.
- %d:Tag des Monats als Zahlenwert von 01 bis 31.
- %m:Monat als numerischer Wert von 01 bis 12.
- %Y:Jahr als 4-stelliger Zahlenwert (yyyy).
- %T:Uhrzeit im 24-Stunden-Format (hh:mm:ss).
Weitere Parameter finden Sie in der offiziellen Dokumentation für MySQL.
Das Ergebnis dieser Abfrage sollte wie folgt aussehen:
2021-02-10 12:30:20
Jetzt haben wir den Wert im Datentyp DATETIME. Um nur die Zeit zu extrahieren, müssen wir das DATE_FORMAT
hinzufügen Funktion auf die obige Abfrage.
Die allgemeine Syntax des DATE_FORMAT
Funktion ist:
DATE_FORMAT(date, format)
Dann sollte unsere Abfrage so aussehen:
SELECT DATE_FORMAT(STR_TO_DATE("Wednesday, 10 February 2021, 12:30:20", "%W, %d-%m-%Y, %T"), "%T");
In unserem Beispiel das erste Argument von DATE_FORMAT
Funktion ist das Datum, das sich aus STR_TO_DATE
ergibt Funktion. Das zweite Argument ist das Format, das genauso funktioniert wie in STR_TO_DATE
Funktion. Da wir hier nur die Uhrzeit benötigen, geben wir „%T
" als zweites Argument.
Das %-Zeichen ist vor den Formatbezeichnerzeichen obligatorisch. Wir müssen das Format in genau derselben Reihenfolge angeben, einschließlich aller Satzzeichen.
Das unten angezeigte Abfrageergebnis ist das erwartete Ergebnis.
12:30:20
Indem Sie eine Kombination dieser beiden Funktionen verwenden, können Sie jede mögliche Kombination von Datum und Uhrzeit aus einer Textzeichenfolge extrahieren.