MySQL STR_TO_DATE() Function
Die Funktion `STR_TO_DATE()` in MySQL wird verwendet, um einen String in ein Datum zu konvertieren, das auf einem bestimmten Format basiert. Sie ist besonders nützlich, um Datumsstrings in Datumsobjekte zu parsen, mit denen MySQL arbeiten kann.
Verwendung
Die Funktion `STR_TO_DATE()` wird normalerweise verwendet, wenn du eine Zeichenkette in ein Datumsformat umwandeln musst, um datumsbezogene Operationen durchzuführen. Diese Funktion benötigt die zu konvertierende Zeichenkette und das Format, in dem das Datum angegeben ist.
STR_TO_DATE(string, format);
In dieser Syntax ist "String" die Datumszeichenkette, die du umwandeln willst, und "Format" ist das Format, das der Stringstruktur entspricht.
Gemeinsame Formatangaben
Hier sind einige gängige Formatangaben, die du mit `STR_TO_DATE()` verwenden kannst:
%d
: Tag des Monats (01 bis 31)%m
: Monat (01 bis 12)%Y
: Jahr (vierstellig)%H
: Stunde (00 bis 23)%i
: Minuten (00 bis 59)%s
: Sekunden (00 bis 59)%W
: Name des Wochentags (z. B. Sonntag)%b
: Abgekürzter Monatsname (z. B. Jan)
Beispiele
1. Grundlegende Konvertierung von String in Datum
SELECT STR_TO_DATE('10-12-2023', '%d-%m-%Y');
In diesem Beispiel wird die Zeichenkette "10-12-2023" in ein Datum im Format "%d-%m-%Y" umgewandelt, was so viel bedeutet wie "10. Dezember 2023".
2. Umrechnung mit Zeit
SELECT STR_TO_DATE('2023/12/10 14:30:00', '%Y/%m/%d %H:%i:%s');
Hier wandelt die Funktion "2023/12/10 14:30:00" in ein Datums- und Zeitobjekt um und interpretiert das Format als "Jahr/Monat/Tag Stunde:Minute:Sekunde".
3. Parsen verschiedener Datumsformate
SELECT STR_TO_DATE('Saturday, Dec 10 2023', '%W, %b %d %Y');
Dieses Beispiel zeigt, wie eine Zeichenkette mit einem anderen Datumsformat "Samstag, 10. Dezember 2023" mit "%W, %b %d %Y" konvertiert wird, um Tagesnamen und abgekürzte Monatsnamen zu interpretieren.
4. Beispiel für ein nicht übereinstimmendes Format
SELECT STR_TO_DATE('2023-10-12', '%d-%m-%Y');
In diesem Beispiel wird `NULL` zurückgegeben, weil das Format nicht mit dem Eingabe-String übereinstimmt. Das zeigt, wie wichtig es ist, den Format-String genau an die Struktur des Eingabe-Strings anzupassen.
Tipps und bewährte Praktiken
- Achte auf die Formatgenauigkeit. Der Formatstring muss genau mit der Struktur des Datumsstrings übereinstimmen, damit die Umwandlung erfolgreich ist.
- Behandle NULLs elegant. Wenn das Format nicht übereinstimmt, gibt die Funktion `NULL` zurück; verwende `COALESCE()`, um mögliche Nullen zu verwalten.
- Nutze die Datumsfunktionen von MySQL. Nach der Konvertierung kannst du die Datumsfunktionen von MySQL nutzen, um Datumsdaten effizient zu bearbeiten und abzufragen.
- Teste mit Beispieldaten. Überprüfe die Funktion mit Beispieldaten, um sicherzustellen, dass die Formatzeichenfolge korrekt mit der Struktur der Eingabezeichenfolge übereinstimmt.
- Berücksichtige die Einstellungen für das Gebietsschema. Beachte, dass die Datumsformatangaben je nach Gebietsschema variieren können, was sich auf das Parsing auswirken kann.
Häufige Fallstricke und Fehlermeldungen
- Das Format stimmt nicht überein: Ein häufiger Fallstrick ist eine Nichtübereinstimmung zwischen dem Datumsstring und dem Formatstring, was zu einem "NULL"-Wert führt.
- Lokale Unterschiede: Stelle sicher, dass die Formatangaben mit den Gebietsschemaeinstellungen übereinstimmen, wenn die Datumszeichenfolge lokalisierte Monats- oder Tagesnamen verwendet.