I MariaDB, TO_CHAR() är en inbyggd strängfunktion som konverterar ett datum/tid-uttryck till en sträng.
Uttrycket kan vara ett datum-, datetime-, tid- eller tidsstämpelvärde.
Denna funktion introducerades i MariaDB 10.6.1 för att förbättra Oracle-kompatibiliteten.
Syntax
Syntaxen ser ut så här:
TO_CHAR(expr[, fmt])
Där expr är ett datum, datetime, time eller timestamp värde och fmt är en valfri formatsträng som anger hur utdata ska formateras.
Formatsträngen kan vara något av följande:
YYYYYYYYYRRRRRRMMMONMONTHMIDDDYHHHH12HH24SS- Specialtecken
Standardvärdet är YYYY-MM-DD HH24:MI:SS .
Exempel
Här är ett exempel att visa:
SELECT TO_CHAR('2020-01-01'); Resultat:
+-----------------------+
| TO_CHAR('2020-01-01') |
+-----------------------+
| 2020-01-01 00:00:00 |
+-----------------------+ Lämna ett datum/tidsvärde
Det här exemplet använder ett datetime-värde:
SELECT TO_CHAR('2022-12-25 10:30:45'); Resultat:
+--------------------------------+
| TO_CHAR('2022-12-25 10:30:45') |
+--------------------------------+
| 2022-12-25 10:30:45 |
+--------------------------------+ Ange en formatsträng
Här är ett exempel med en formatsträng:
SELECT TO_CHAR('2022-12-25 10:30:45', 'YYYY-MM-DD'); Resultat:
+----------------------------------------------+
| TO_CHAR('2022-12-25 10:30:45', 'YYYY-MM-DD') |
+----------------------------------------------+
| 2022-12-25 |
+----------------------------------------------+ Här är en till:
SELECT TO_CHAR('2022-12-25', 'DY, DD MONTH YYYY'); Resultat:
+--------------------------------------------+
| TO_CHAR('2022-12-25', 'DY, DD MONTH YYYY') |
+--------------------------------------------+
| Sun, 25 December 2022 |
+--------------------------------------------+ Numeriska datum
Så här händer när jag anger ett numeriskt datum:
SELECT TO_CHAR(20200101); Resultat:
ERROR 3047 (HY000): Invalid argument error: data type of first argument must be type date/datetime/time or string in function to_char.
Ogiltiga datum
Om datumet är ogiltigt, TO_CHAR() returnerar null med en varning:
SELECT TO_CHAR('2020-01-51'); Resultat:
+-----------------------+
| TO_CHAR('2020-01-51') |
+-----------------------+
| NULL |
+-----------------------+
1 row in set, 1 warning (0.001 sec) Låt oss kolla varningen:
SHOW WARNINGS; Resultat:
+---------+------+----------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------+ | Warning | 1292 | Incorrect datetime value: '2020-01-51' | +---------+------+----------------------------------------+
Ogiltig formatsträng
Om formatsträngen är ogiltig, TO_CHAR() returnerar ett fel:
SELECT TO_CHAR('2020-01-01', 'wow'); Resultat:
ERROR 3047 (HY000): Invalid argument error: date format not recognized at wow in function to_char.
Nullformatsträng
TO_CHAR() returnerar null om formatsträngen är null :
SELECT TO_CHAR('2020-01-01', null); Resultat:
+-----------------------------+
| TO_CHAR('2020-01-01', null) |
+-----------------------------+
| NULL |
+-----------------------------+ Ogiltigt antal argument
Att skicka ett ogiltigt antal argument (eller inga argument) resulterar i ett fel:
SELECT TO_CHAR(); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_CHAR'