I MariaDB, TO_CHAR() er en indbygget strengfunktion, der konverterer et dato/tidsudtryk til en streng.
Udtrykket kan være en dato, datetime, time eller timestamp værdi.
Denne funktion blev introduceret i MariaDB 10.6.1 for at forbedre Oracle-kompatibiliteten.
Syntaks
Syntaksen ser sådan ud:
TO_CHAR(expr[, fmt])
Hvor expr er en dato, datetime, time eller timestamp værdi og fmt er en valgfri formatstreng, der specificerer, hvordan outputtet skal formateres.
Formatstrengen kan være en af følgende:
YYYYYYYYYRRRRRRMMMONMONTHMIDDDYHHHH12HH24SS- Specialtegn
Standardværdien er YYYY-MM-DD HH24:MI:SS .
Eksempel
Her er et eksempel til demonstration:
SELECT TO_CHAR('2020-01-01'); Resultat:
+-----------------------+
| TO_CHAR('2020-01-01') |
+-----------------------+
| 2020-01-01 00:00:00 |
+-----------------------+ Bestå en DateTime-værdi
Dette eksempel bruger en datetime-værdi:
SELECT TO_CHAR('2022-12-25 10:30:45'); Resultat:
+--------------------------------+
| TO_CHAR('2022-12-25 10:30:45') |
+--------------------------------+
| 2022-12-25 10:30:45 |
+--------------------------------+ Angiv en formatstreng
Her er et eksempel med en formatstreng:
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 |
+----------------------------------------------+ Her er endnu en:
SELECT TO_CHAR('2022-12-25', 'DY, DD MONTH YYYY'); Resultat:
+--------------------------------------------+
| TO_CHAR('2022-12-25', 'DY, DD MONTH YYYY') |
+--------------------------------------------+
| Sun, 25 December 2022 |
+--------------------------------------------+ Numeriske datoer
Her er, hvad der sker, når jeg angiver en numerisk dato:
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.
Ugyldige datoer
Hvis datoen er ugyldig, TO_CHAR() returnerer null med en advarsel:
SELECT TO_CHAR('2020-01-51'); Resultat:
+-----------------------+
| TO_CHAR('2020-01-51') |
+-----------------------+
| NULL |
+-----------------------+
1 row in set, 1 warning (0.001 sec) Lad os tjekke advarslen:
SHOW WARNINGS; Resultat:
+---------+------+----------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------+ | Warning | 1292 | Incorrect datetime value: '2020-01-51' | +---------+------+----------------------------------------+
Ugyldig formatstreng
Hvis formatstrengen er ugyldig, TO_CHAR() returnerer en fejl:
SELECT TO_CHAR('2020-01-01', 'wow'); Resultat:
ERROR 3047 (HY000): Invalid argument error: date format not recognized at wow in function to_char.
Nul-formatstreng
TO_CHAR() returnerer null hvis formatstrengen er null :
SELECT TO_CHAR('2020-01-01', null); Resultat:
+-----------------------------+
| TO_CHAR('2020-01-01', null) |
+-----------------------------+
| NULL |
+-----------------------------+ Ugyldigt antal argumenter
Sende et ugyldigt antal argumenter (eller ingen argumenter) resulterer i en fejl:
SELECT TO_CHAR(); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_CHAR'