La función TO_CHAR en PostgreSQL te permite convertir valores a formato cadena. Esta función está englobada en las denominadas funciones de cadena.
Sintaxis
Escribe la siguiente sintaxis para utilizarlo:
TO_CHAR(expresion, formato)
- expresión: la expresión puede ser una marca de tiempo, un intervalo, un número entero, un valor de doble precisión o un valor numérico que se convierte en cadena según un formato específico.
- formato: que formato se debe devolver la cadena.
Lista de formatos
La tabla siguiente muestra las cadenas de formato numérico válidas:
Formato | Descripción |
---|---|
9 | Valor numérico con el número de dígitos especificado |
0 | Valor numérico con ceros a la izquierda |
. (period) | punto decimal |
D | punto decimal que utiliza la configuración regional |
, (comma) | grupo (miles) separador |
FM | Modo de relleno, que suprime los espacios en blanco de relleno y los ceros a la izquierda. |
PR | Valor negativo entre paréntesis angulares. |
S | Signo anclado a un número que utiliza la configuración regional |
L | Símbolo de moneda que utiliza la configuración regional |
G | Separador de grupos que utiliza la configuración regional |
MI | Signo menos en la posición especificada para números menores que 0. |
PL | Signo más en la posición especificada para números mayores que 0. |
SG | Signo más / menos en la posición especificada |
RN | Número romano que va del 1 al 3999 |
TH or th | Sufijo del número ordinal en mayúsculas o minúsculas |
La siguiente tabla muestra las cadenas de formato de fecha y hora válidas:
Pattern | Description |
Y,YYY | año en 4 dígitos con coma |
YYYY | año en 4 dígitos |
YYY | 3 últimos dígitos del año |
YY | 2 últimos dígitos del año |
Y | El último dígito del año |
IYYY | Año de numeración de semanas ISO 8601 (4 o más dígitos) |
IYY | 3 últimos dígitos del año de numeración de la semana ISO 8601 |
IY | 2 últimos dígitos del año de numeración de la semana ISO 8601 |
I | Último dígito del año de numeración de la semana ISO 8601 |
BC, bc, AD or ad | Indicador de era sin puntos |
B.C., b.c., A.D. ora.d. | Indicador de época con puntos |
MONTH | Nombre del mes en inglés en mayúsculas |
Month | Nombre del mes en inglés con mayúsculas |
month | Nombre completo del mes en inglés en minúsculas |
MON | Nombre abreviado del mes en mayúsculas, por ejemplo, ENE, FEB, etc. |
Mon | Nombre del mes abreviado en mayúsculas, por ejemplo, enero, febrero, etc. |
mon | Nombre abreviado del mes en minúsculas, por ejemplo, ene, feb, etc. |
MM | Número de mes de 01 a 12 |
DAY | Nombre del día completo en mayúsculas |
Day | Nombre del día completo con la primera letra en mayúsculas |
day | Nombre del día completo en minúsculas |
DY | Nombre abreviado del día en mayúsculas |
Dy | Nombre abreviado del día con la primera letra en mayúsculas |
dy | Nombre abreviado del día en minúsculas |
DDD | Día del año (001-366) |
IDDD | Día del año de numeración ISO 8601 (001-371; el día 1 del año es el lunes de la primera semana ISO) |
DD | Día del mes (01-31) |
D | Día de la semana, de domingo (1) a sábado (7) |
ID | ISO 8601 día de la semana, de lunes (1) a domingo (7) |
W | Semana del mes (1-5) (la primera semana comienza el primer día del mes) |
WW | Número de semana del año (1-53) (la primera semana comienza el primer día del año) |
IW | Número de semana del año de numeración de semanas ISO 8601 (01-53; el primer jueves del año corresponde a la semana 1) |
CC | Siglo: 21, 22, etc. |
J | Día juliano (días enteros desde el 24 de noviembre de 4714 a.C. a medianoche UTC) |
RM | Mes en números romanos en mayúsculas (I-XII) |
rm | Mes en números romanos minúsculas (i-xii) |
HH | Hora del día (0-12) |
HH12 | Hora del día (0-12) |
HH24 | Hora del día (0-23) |
MI | Minuto (0-59) |
SS | Segundo (0-59) |
MS | Milisegundo (000-999) |
US | Microsegundo (000000-999999) |
SSSS | Segundos después de medianoche (0-86399) |
AM, am, PM or pm | Indicador Meridiem (sin puntos) |
A.M., a.m., P.M. or p.m. | Indicador Meridiem (con puntos) |
Ejemplos
Convertir una fecha a cadena
En el siguiente ejemplo convertimos el campo fecha_alta que es de tipo fecha con formato yyyy-mm-dd a otro campo de cadena con formato dd/mm/yy
select fecha_alta, to_char(fecha_alta,'dd/mm/yy')
from empleados;
Convertir una fecha y hora con zona horaria a cadena
En el siguiente ejemplo puedes observar como se ha añadido un día a una fecha y hora con zona horaria con la función date_add y después lo convertimos a cadena en formato dd/mm/yyyy.
select to_char(date_add('1986-09-26', '1 day'::interval), 'dd/mm/yyyy');