Konvertieren Strings in das Datumsformat in MySQL
Dieser Artikel führt Sie durch verschiedene Funktionen, um einen Wert vom Typ Zeichenfolge, der als DATE
fungiert, in einen Wert vom Typ DATE
umzuwandeln. Wir werden auch mit einigem Beispielcode üben, der die Funktionen STR_TO_DATE()
, CONVERT()
und CAST()
in MySQL verwendet.
HINWEIS: Wir verwenden MySQL V8.0.27. Sie können das neuere von hier erhalten (falls verfügbar)
Konvertierung von Zeichenketten in das Datumsformat in MySQL
Wir werden die folgenden Methoden lernen, um Strings in MySQL in das DATE
-Format zu konvertieren.
MySQL-Funktion STR_TO_DATE()
Diese Funktion wandelt den str
(String) in den DATE
-Wert um. Das Format von DATE
entspricht Ihrem String-Format. Wenn Sie beispielsweise MM/TD/YYYY
vom Zeichenkettentyp in den Typ DATE
konvertieren möchten, hat das DATE
auch das Format MM/TD/YYYY
.
Die STR_TO_DATE()
-Funktion kann DATE
, DATETIME
oder TIME
-Wert basierend auf der Eingabe sowie dem String-Format zurückgeben. Sehen Sie sich die unten angegebenen Beispiele an und vergleichen Sie sie mit der Ausgabe.
SELECT STR_TO_DATE('2021-08-23', '%Y-%m-%d');
AUSGANG:
Was ist, wenn wir das Format ändern? Ersetzen wir den Bindestrich
durch ein Komma
.
SELECT STR_TO_DATE('2021-08-23', '%Y,%m,%d');
AUSGANG:
Siehe die oben angegebene Ausgabe, sie hat NULL
zurückgegeben. Ändern wir nur das Format von YYYY-MM-DD
auf DD-MM-YYYY
.
SELECT STR_TO_DATE('2021-08-23', '%d-%m-%Y');
AUSGANG:
Sehen Sie, es hat wieder NULL
zurückgegeben. Das bedeutet, dass Sie das gleiche DATE
-Format wie in Ihrer Eingabezeichenfolge haben müssen. Was, wenn wir auch TIME
haben? Lassen Sie uns den folgenden Befehl ausführen.
SELECT STR_TO_DATE('2021-08-23 10:12:23', '%Y-%m-%d %T');
AUSGANG:
Die Funktion STR_TO_DATE()
ignoriert den Text und gibt nur das DATE
aus. Siehe folgendes Beispiel.
SELECT STR_TO_DATE('2021-08-23 some other string', '%Y-%m-%d') as Date;
AUSGANG:
Wir können auch das Jahr extrahieren. Wenn Sie das Jahr extrahieren, werden Tag und Monat auf Null gesetzt. Siehe den folgenden Code und die Ausgabe.
SELECT STR_TO_DATE('2021-08-23', '%Y') as Year; #get year
AUSGANG:
MySQL-Funktion CONVERT()
Die Funktion Convert
kann den angegebenen Wert in einen bestimmten Zeichensatz oder Datentyp konvertieren. Sie können die Details zum Datentyp hier sehen.
SELECT CONVERT("2021-08-19", DATE); #convert to DATE
SELECT CONVERT("2021-08-19", DATETIME); #convert to DATETIME
SELECT CONVERT("2021-08-19", TIME); #convert to TIME
AUSGANG:
MySQL-Funktion CAST()
Diese Funktion konvertiert die Eingabe eines beliebigen Typs (es kann ein String, eine Ganzzahl oder etwas anderes sein) in einen beliebigen angegebenen Datentyp. Sie können die Parameterwerte hier im Detail sehen.
SELECT CAST("2021-08-29" AS DATE) as date; #convert to date type
SELECT CAST("2021-08-29 11:12:45" AS DATETIME) as datetime; #convert to datetime type
SELECT CAST("11:12:45" AS TIME) as time; #convert to time type
AUSGANG:
Schlussfolgerungen
Wir sind zu dem Schluss gekommen, dass es mehrere Möglichkeiten gibt, einen Zeichenkettenwert gemäß den Projektanforderungen in DATE
, TIME
und DATETIME
umzuwandeln. Wir haben die Funktionen STR_TO_DATE
, CONVERT
und CAST
für Konvertierungszwecke kennengelernt.