En MariaDB, TO_CHAR()
es una función de cadena integrada que convierte una expresión de fecha/hora en una cadena.
La expresión puede ser un valor de fecha, fecha y hora, hora o marca de tiempo.
Esta función se introdujo en MariaDB 10.6.1 para mejorar la compatibilidad con Oracle.
Sintaxis
La sintaxis es así:
TO_CHAR(expr[, fmt])
Donde expr
es un valor de fecha, fecha y hora, hora o marca de tiempo, y fmt
es una cadena de formato opcional que especifica cómo debe formatearse la salida.
La cadena de formato puede ser cualquiera de las siguientes:
YYYY
YYYY
YY
RRRR
RR
MM
MON
MONTH
MI
DD
DY
HH
HH12
HH24
SS
- Caracteres especiales
El valor predeterminado es YYYY-MM-DD HH24:MI:SS
.
Ejemplo
Aquí hay un ejemplo para demostrarlo:
SELECT TO_CHAR('2020-01-01');
Resultado:
+-----------------------+ | TO_CHAR('2020-01-01') | +-----------------------+ | 2020-01-01 00:00:00 | +-----------------------+
Pasar un valor de fecha y hora
Este ejemplo usa un valor de fecha y hora:
SELECT TO_CHAR('2022-12-25 10:30:45');
Resultado:
+--------------------------------+ | TO_CHAR('2022-12-25 10:30:45') | +--------------------------------+ | 2022-12-25 10:30:45 | +--------------------------------+
Especifique una cadena de formato
Aquí hay un ejemplo con una cadena de formato:
SELECT TO_CHAR('2022-12-25 10:30:45', 'YYYY-MM-DD');
Resultado:
+----------------------------------------------+ | TO_CHAR('2022-12-25 10:30:45', 'YYYY-MM-DD') | +----------------------------------------------+ | 2022-12-25 | +----------------------------------------------+
Aquí hay otro:
SELECT TO_CHAR('2022-12-25', 'DY, DD MONTH YYYY');
Resultado:
+--------------------------------------------+ | TO_CHAR('2022-12-25', 'DY, DD MONTH YYYY') | +--------------------------------------------+ | Sun, 25 December 2022 | +--------------------------------------------+
Fechas numéricas
Esto es lo que sucede cuando proporciono una fecha numérica:
SELECT TO_CHAR(20200101);
Resultado:
ERROR 3047 (HY000): Invalid argument error: data type of first argument must be type date/datetime/time or string in function to_char.
Fechas no válidas
Si la fecha no es válida, TO_CHAR()
devuelve null
con una advertencia:
SELECT TO_CHAR('2020-01-51');
Resultado:
+-----------------------+ | TO_CHAR('2020-01-51') | +-----------------------+ | NULL | +-----------------------+ 1 row in set, 1 warning (0.001 sec)
Revisemos la advertencia:
SHOW WARNINGS;
Resultado:
+---------+------+----------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------+ | Warning | 1292 | Incorrect datetime value: '2020-01-51' | +---------+------+----------------------------------------+
Cadena de formato no válida
Si la cadena de formato no es válida, TO_CHAR()
devuelve un error:
SELECT TO_CHAR('2020-01-01', 'wow');
Resultado:
ERROR 3047 (HY000): Invalid argument error: date format not recognized at wow in function to_char.
Cadena de formato nulo
TO_CHAR()
devuelve null
si la cadena de formato es null
:
SELECT TO_CHAR('2020-01-01', null);
Resultado:
+-----------------------------+ | TO_CHAR('2020-01-01', null) | +-----------------------------+ | NULL | +-----------------------------+
Número de argumentos no válido
Pasar un número no válido de argumentos (o ningún argumento) da como resultado un error:
SELECT TO_CHAR();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_CHAR'