Die STR_TO_DATE SQL-Funktion in MySQL und MariaDB - Zeichenkette zu Datum formatieren |
|
| | STR_TO_DATE | Syntax: | STR_TO_DATE(Zeichenkette, Format) | | Rückgabe-Wert: | DATE, TIME, DATETIME | | Funktions-Typ: | Datum und Zeit-Funktion | |
| | Die SQL-Funktion STR_TO_DATE() nimmt eine "Zeichenkette" nach der Angabe von "Format" und gibt je nach Inhalt der "Format"-Angabe einen Wert vom Typ DATETIME, DATE oder TIME zurück.
Die in "Zeichenkette" enthaltenen Datums- und Zeit-Werte sollten der durch "Format" angegebenen Zeichenfolge entsprechen.
Wenn die Argumente "Zeichenkette" oder "Format" einen ungültigen Wert oder NULL enthalten, gibt die STR_TO_DATE()-Funktion NULL zurück.
STR_TO_DATE() ist die Umkehrung der Funktion DATE_FORMAT().
Optionen für den "Format"-String:
| Option | Beschreibung |
| %a | Kurzer Name des Wochentags im aktuellen Gebietsschema (Variable lc_time_names). |
| %b | Kurzform des Monatsnamens im aktuellen Gebietsschema. Für das Gebietsschema en_US ist dies einer der folgenden: Jan, Feb, Mär, Apr, Mai, Jun, Jul, Aug, Sep, Okt, Nov oder Dez. |
| %c | Monat mit 1 oder 2 Ziffern. |
| %D | Tag mit englischem Suffix "th", "nd", "st" oder "rd". (1., 2., 3. ...). |
| %d | Tag mit 2 Ziffern. |
| %e | Tag mit 1 oder 2 Ziffern. |
| %f | Mikrosekunden 6 Ziffern. |
| %H | Stunde mit 2 Ziffern zwischen 00-23. |
| %h | Stunde mit 2 Ziffern zwischen 01-12. |
| %I | Stunde mit 2 Ziffern zwischen 01-12. |
| %i | Minute mit 2 Ziffern. |
| %j | Tag des Jahres (001-366) |
| %k | Stunde mit 1 Ziffern zwischen 0-23. |
| %l | Stunde mit 1 Ziffern zwischen 1-12. |
| %M | Vollständiger Monatsname im aktuellen Gebietsschema (Variable lc_time_names). |
| %m | Monat mit 2 Ziffern. |
| %p | AM/PM gemäß aktuellem Gebietsschema (Variable lc_time_names). |
| %r | Uhrzeit im 12-Stunden-Format, gefolgt von AM/PM. Abkürzung für '%I:%i:%S %p'. |
| %S | Sekunden mit 2 Ziffern. |
| %s | Sekunden mit 2 Ziffern. |
| %T | Uhrzeit im 24-Stunden-Format. Abkürzung für '%H:%i:%S'. |
| %U | Wochennummer (00-53), wenn der erste Tag der Woche Sonntag ist. |
| %u | Wochennummer (00-53), wenn der erste Tag der Woche Montag ist. |
| %V | Wochennummer (01-53), wenn der erste Tag der Woche Sonntag ist. Wird mit %X verwendet. |
| %v | Wochennummer (01-53), wenn der erste Tag der Woche Montag ist. Wird mit %x verwendet. |
| %W | Vollständiger Name des Wochentags im aktuellen Gebietsschema (Variable lc_time_names). |
| %w | Wochentag. 0 = Sonntag, 6 = Samstag. |
| %X | Jahr mit 4 Ziffern, wenn der erste Tag der Woche Sonntag ist. Wird mit %V verwendet. |
| %x | Jahr mit 4 Ziffern, wenn der erste Tag der Woche Sonntag ist. Wird mit %v verwendet. |
| %Y | Jahr mit 4 Ziffern. |
| %y | Jahr mit 2 Ziffern. |
| %# | Überspringt für str_to_date() alle Zahlen. |
| %. | Überspringt bei str_to_date() alle Satzzeichen. |
| %@ | Überspringt für str_to_date() alle Alphazeichen. |
| %% | Ein wörtliches %-Zeichen. |
| SQL Beispiele für die STR_TO_DATE-Funktion |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
|
select str_to_date('2020-02-30', '%Y-%m-%d');
select str_to_date('2020, 02, 30', '%Y, %m, %d');
select str_to_date('30, 02, 2020', '%d, %m, %Y');
select str_to_date('20200230', '%Y%m%d');
select str_to_date('May 2, 2023', '%M %e, %Y');
select str_to_date('Monday, May 2, 2023', '%W, %M %e, %Y');
select str_to_date('10 15 30', '%H %i %s');
select str_to_date('30 15 10', '%s %i %H');
select str_to_date('10 15 30 6000', '%H %i %s %f');
select str_to_date('May 2, 2023', '%W, %M %e, %Y');
select str_to_date('May 2, 2023', '');
select str_to_date(null, '%W, %M %e, %Y');
select str_to_date('Monday, May 2, 2023', null);
|
|
| str_to_date('2020-02-30', '%Y-%m-%d') |
| date(10) |
| 2020-02-30 |
|
|
| str_to_date('2020, 02, 30', '%Y, %m, %d') |
| date(10) |
| 2020-02-30 |
|
|
| str_to_date('30, 02, 2020', '%d, %m, %Y') |
| date(10) |
| 2020-02-30 |
|
|
| str_to_date('20200230', '%Y%m%d') |
| date(10) |
| 2020-02-30 |
|
|
| str_to_date('May 2, 2023', '%M %e, %Y') |
| date(10) |
| 2023-05-02 |
|
|
| str_to_date('Monday, May 2, 2023', '%W, %M %e, %Y') |
| date(10) |
| 2023-05-02 |
|
|
| str_to_date('10 15 30', '%H %i %s') |
| time(10) |
| 10:15:30 |
|
|
| str_to_date('30 15 10', '%s %i %H') |
| time(10) |
| 10:15:30 |
|
|
| str_to_date('10 15 30 6000', '%H %i %s %f') |
| time(17) |
| 10:15:30.600000 |
|
|
| str_to_date('May 2, 2023', '%W, %M %e, %Y') |
| date(10) |
| NULL |
|
|
| str_to_date('May 2, 2023', '') |
| date(10) |
| NULL |
|
|
| str_to_date(null, '%W, %M %e, %Y') |
| date(10) |
| NULL |
|
|
| str_to_date('Monday, May 2, 2023', null) |
| datetime(26) |
| NULL |
|
|
| | Die Beispiele wurden mit dem MyWAY SQL-Manager erstellt: | Verwendung der STR_TO_DATE() Funktion in MySQL und MariaDB-Datenbanken | | Die Funktion STR_TO_DATE() in MySQL und MariaDB wandelt eine Zeichenfolgendarstellung eines Datums oder einer Uhrzeit in einen entsprechenden Datums- oder Uhrzeitwert um und ermöglicht es, das Format der Eingabezeichenfolge mithilfe von Formatbezeichnern anzugeben, um es an das Muster der Datums- oder Uhrzeitzeichenfolge anzupassen. Die Funktion gibt kein Ergebnis zurück, wenn die Eingabezeichenfolge nicht mit dem angegebenen Format übereinstimmt. STR_TO_DATE() ist nützlich, wenn eine Zeichenfolgendarstellung eines Datums oder einer Uhrzeit in einen geeigneten Datums- oder Uhrzeitwert in MySQL oder MariaDB konvertiert werden muss. | | Weitere MySQL und MariaDB SQL Datum und Zeit-Funktionen | | ADDDATE | ADDDATE(Datum, [INTERVAL] Anzahl [Einheit]) | | Mehr zur ADDDATE-Funktion |
| | ADDTIME | ADDTIME(Datum, Ausdruck) | | Mehr zur ADDTIME-Funktion |
| | CONVERT_TZ | CONVERT_TZ(Datum, Von Zeitzone, Zu Zeitzone) | | Mehr zur CONVERT_TZ-Funktion |
| | CURDATE | CURDATE() | | Mehr zur CURDATE-Funktion |
| | CURTIME | CURTIME([Genauigkeit]) | | Mehr zur CURTIME-Funktion |
| | CURRENT_DATE | CURRENT_DATE(-) | | Mehr zur CURRENT_DATE-Funktion |
| | CURRENT_TIME | CURRENT_TIME([Genauigkeit]) | | Mehr zur CURRENT_TIME-Funktion |
| | CURRENT_TIMESTAMP | CURRENT_TIMESTAMP([Genauigkeit]) | | Mehr zur CURRENT_TIMESTAMP-Funktion |
| | DATE | DATE(Datum und Uhrzeit) | | Mehr zur DATE-Funktion |
| | DATE_ADD | DATE_ADD(Datum, INTERVAL Anzahl Einheit) | | Mehr zur DATE_ADD-Funktion |
| | DATE_SUB | DATE_SUB(Datum, INTERVAL Anzahl Einheit) | | Mehr zur DATE_SUB-Funktion |
| | FROM_DAYS | FROM_DAYS(Anzahl Tage) | | Mehr zur FROM_DAYS-Funktion |
| | FROM_UNIXTIME | FROM_UNIXTIME(Unix-Timestamp [, Format]) | | Mehr zur FROM_UNIXTIME-Funktion |
| | LOCALTIME | LOCALTIME([Genauigkeit]) | | Mehr zur LOCALTIME-Funktion |
| | LOCALTIMESTAMP | LOCALTIMESTAMP([Genauigkeit]) | | Mehr zur LOCALTIMESTAMP-Funktion |
| | MAKEDATE | MAKEDATE(Jahr, Tag vom Jahr) | | Mehr zur MAKEDATE-Funktion |
| | MAKETIME | MAKETIME(Stunden, Minuten, Sekunden) | | Mehr zur MAKETIME-Funktion |
| | NOW | NOW([Genauigkeit]) | | Mehr zur NOW-Funktion |
| | SEC_TO_TIME | SEC_TO_TIME(Sekunden) | | Mehr zur SEC_TO_TIME-Funktion |
| | SLEEP | SLEEP(Sekunden) | | Mehr zur SLEEP-Funktion |
| | SUBDATE | SUBDATE(Datum, [INTERVAL] Anzahl [Einheit]) | | Mehr zur SUBDATE-Funktion |
| | SUBTIME | SUBTIME(Datum und Uhrzeit, Abzug) | | Mehr zur SUBTIME-Funktion |
| | SYSDATE | SYSDATE() | | Mehr zur SYSDATE-Funktion |
| | TIME | TIME(Datum und Uhrzeit) | | Mehr zur TIME-Funktion |
| | TIMEDIFF | TIMEDIFF(Datum 1, Datum 2) | | Mehr zur TIMEDIFF-Funktion |
| | TIMESTAMP | TIMESTAMP(Datum [, Addition]) | | Mehr zur TIMESTAMP-Funktion |
| | TIMESTAMPADD | TIMESTAMPADD(Einheit, Anzahl, Datum) | | Mehr zur TIMESTAMPADD-Funktion |
| | TIMESTAMPDIFF | TIMESTAMPDIFF(Einheit, Datum 1, Datum 2) | | Mehr zur TIMESTAMPDIFF-Funktion |
| | UTC_DATE | UTC_DATE() | | Mehr zur UTC_DATE-Funktion |
| | UTC_TIME | UTC_TIME([Genauigkeit]) | | Mehr zur UTC_TIME-Funktion |
| | UTC_TIMESTAMP | UTC_TIMESTAMP([Genauigkeit]) | | Mehr zur UTC_TIMESTAMP-Funktion |
| | DAY | DAY(Datum) | | Mehr zur DAY-Funktion |
| | DAYOFMONTH | DAYOFMONTH(Datum) | | Mehr zur DAYOFMONTH-Funktion |
| | DAYOFWEEK | DAYOFWEEK(Datum) | | Mehr zur DAYOFWEEK-Funktion |
| | DAYOFYEAR | DAYOFYEAR(Datum) | | Mehr zur DAYOFYEAR-Funktion |
| | EXTRACT | EXTRACT(Einheit FROM Datum) | | Mehr zur EXTRACT-Funktion |
| | HOUR | HOUR(Datum und Uhrzeit) | | Mehr zur HOUR-Funktion |
| | MICROSECOND | MICROSECOND(Datum und Uhrzeit) | | Mehr zur MICROSECOND-Funktion |
| | MINUTE | MINUTE(Datum und Uhrzeit) | | Mehr zur MINUTE-Funktion |
| | MONTH | MONTH(Datum) | | Mehr zur MONTH-Funktion |
| | QUARTER | QUARTER(Datum) | | Mehr zur QUARTER-Funktion |
| | SECOND | SECOND(Datum und Uhrzeit) | | Mehr zur SECOND-Funktion |
| | TIME_TO_SEC | TIME_TO_SEC(Uhrzeit) | | Mehr zur TIME_TO_SEC-Funktion |
| | TO_DAYS | TO_DAYS(Datum) | | Mehr zur TO_DAYS-Funktion |
| | TO_SECONDS | TO_SECONDS(Datum und Uhrzeit) | | Mehr zur TO_SECONDS-Funktion |
| | UNIX_TIMESTAMP | UNIX_TIMESTAMP([Datum und Uhrzeit]) | | Mehr zur UNIX_TIMESTAMP-Funktion |
| | WEEK | WEEK(Datum [, Modus]) | | Mehr zur WEEK-Funktion |
| | WEEKDAY | WEEKDAY(Datum) | | Mehr zur WEEKDAY-Funktion |
| | WEEKOFYEAR | WEEKOFYEAR(Datum) | | Mehr zur WEEKOFYEAR-Funktion |
| | YEAR | YEAR(Datum) | | Mehr zur YEAR-Funktion |
| | YEARWEEK | YEARWEEK(Datum [, Modus]) | | Mehr zur YEARWEEK-Funktion |
| | DAYNAME | DAYNAME(Datum) | | Mehr zur DAYNAME-Funktion |
| | DATE_FORMAT | DATE_FORMAT(Datum und Uhrzeit, Format) | | Mehr zur DATE_FORMAT-Funktion |
| | GET_FORMAT | GET_FORMAT(Typ, Format) | | Mehr zur GET_FORMAT-Funktion |
| | MONTHNAME | MONTHNAME(Datum) | | Mehr zur MONTHNAME-Funktion |
| | TIME_FORMAT | TIME_FORMAT(Uhrzeit, Format) | | Mehr zur TIME_FORMAT-Funktion |
|
|
| | | Weitere Informationen zur SQL-Funktion STR_TO_DATE: und und |
|
|
|
|