Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So erhalten Sie die Zeit aus einer Zeichenfolge in MySQL

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.