In MariaDB TO_CHAR()
ist eine integrierte Zeichenfolgenfunktion, die einen Datums-/Uhrzeitausdruck in eine Zeichenfolge umwandelt.
Der Ausdruck kann ein Datums-, Datumszeit-, Zeit- oder Zeitstempelwert sein.
Diese Funktion wurde in MariaDB 10.6.1 eingeführt, um die Oracle-Kompatibilität zu verbessern.
Syntax
Die Syntax lautet wie folgt:
TO_CHAR(expr[, fmt])
Wobei expr
ist ein Datums-, Datums-, Zeit- oder Zeitstempelwert und fmt
ist eine optionale Formatzeichenfolge, die angibt, wie die Ausgabe formatiert werden soll.
Die Formatzeichenfolge kann eine der folgenden sein:
YYYY
YYY
YY
RRRR
RR
MM
MON
MONTH
MI
DD
DY
HH
HH12
HH24
SS
- Sonderzeichen
Der Standardwert ist YYYY-MM-DD HH24:MI:SS
.
Beispiel
Hier ist ein Beispiel zur Veranschaulichung:
SELECT TO_CHAR('2020-01-01');
Ergebnis:
+-----------------------+| TO_CHAR('2020-01-01') |+-----------------------+| 01.01.2020 00:00:00 |+----------------------+
Übergeben Sie einen Datetime-Wert
Dieses Beispiel verwendet einen datetime-Wert:
SELECT TO_CHAR('2022-12-25 10:30:45');
Ergebnis:
+-------------------------------+| TO_CHAR('2022-12-25 10:30:45') |+-------------------------------+ | 2022-12-25 10:30:45 |+-------------------------------+
Geben Sie eine Formatzeichenfolge an
Hier ist ein Beispiel mit einem Formatstring:
SELECT TO_CHAR('2022-12-25 10:30:45', 'YYYY-MM-DD');
Ergebnis:
Hier ist noch einer:
SELECT TO_CHAR('2022-12-25', 'DY, DD MONTH YYYY');
Ergebnis:
+--------------------------------------------------+| TO_CHAR('2022-12-25', 'DY, TT MONAT JJJJ') |+------------------------------ --------------+| So, 25. Dezember 2022 |+-------------------------------------------------- -+
Numerische Daten
Folgendes passiert, wenn ich ein numerisches Datum angebe:
SELECT TO_CHAR(20200101);
Ergebnis:
FEHLER 3047 (HY000):Ungültiger Argumentfehler:Datentyp des ersten Arguments muss Typ date/datetime/time oder string in der Funktion to_char sein.
Ungültige Daten
Wenn das Datum ungültig ist, TO_CHAR()
gibt null
zurück mit einer Warnung:
SELECT TO_CHAR('2020-01-51');
Ergebnis:
+-----------------------+| TO_CHAR('2020-01-51') |+-----------------------+| NULL |+-----------------------+1 Zeile im Satz, 1 Warnung (0,001 Sek.)
Sehen wir uns die Warnung an:
SHOW WARNINGS;
Ergebnis:
+---------+------+------------------------------------- -----------+| Ebene | Code | Nachricht |+---------+------+------------------------------ ----------+| Warnung | 1292 | Falscher datetime-Wert:'2020-01-51' |+---------+------+-------------------- --------------------+
Ungültiger Formatstring
Wenn die Formatzeichenfolge ungültig ist, TO_CHAR()
gibt einen Fehler zurück:
SELECT TO_CHAR('2020-01-01', 'wow');
Ergebnis:
FEHLER 3047 (HY000):Ungültiger Argumentfehler:Datumsformat wird bei wow in der Funktion to_char nicht erkannt.
Null-Format-String
TO_CHAR()
gibt null
zurück wenn der Formatstring null
ist :
SELECT TO_CHAR('2020-01-01', null);
Ergebnis:
+-------------------------------------+| TO_CHAR('2020-01-01', null) |+--------------------------------------+| NULL |+-------------------------------------+
Ungültige Anzahl von Argumenten
Das Übergeben einer ungültigen Anzahl von Argumenten (oder keiner Argumente) führt zu einem Fehler:
SELECT TO_CHAR();
Ergebnis:
FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion 'TO_CHAR'