Las funciones de formato proveen un poderoso conjunto de herramientas para convertir varios datetypes (date/time, int, float, numeric) a texto formateado y convertir de texto formateado a su datetypes original.
Tabla 6. Funciones de Formato
Funciones | Retorna | Descripcion | Ejemplo |
---|
to_char(datetime, text) | text | convierte datetime a string | to_char('now'::datetime, 'HH12:MI:SS') |
to_char(timestamp, text) | text | convierte timestamp a string | to_char( now(), 'HH12:MI:SS') |
to_char(int, text) | text | convierte int4/int8 a string | to_char(125, '999') |
to_char(float, text) | text | convierte float4/float8 a string | to_char(125.8, '999D9') |
to_char(numeric, text) | text | convierte numeric a string | to_char(-125.8, '999D99S') |
to_datetime(text, text) | datetime | convierte string a datetime | to_datetime('05 Dec 2000 13', 'DD Mon YYYY HH') |
to_date(text, text) | date | convierte string a date | to_date('05 Dec 2000', 'DD Mon YYYY') |
to_timestamp(text, text) | date | convierte string a timestamp | to_timestamp('05 Dec 2000', 'DD Mon YYYY') |
to_number(text, text) | numeric | convierte string a numeric | to_number('12,454.8-', '99G999D9S') |
Para todas las funciones de formato, el segundo argumento es format-picture.
Tabla 7. Format-pictures para date/time to_char() versi�n.
Format-picture | Descripci�n |
---|
HH | hora del d�a(01-12) |
HH12 | hora del d�a(01-12) |
MI | minuto (00-59) |
SS | segundos (00-59) |
SSSS | segundos pasados la medianoche(0-86399) |
Y,YYY | a�o(4 o mas d�gitos) con coma |
YYYY | a�o(4 o mas d�gitos) |
YYY | �ltimos 3 d�gitos del a�o |
YY | �ltimos 2 d�gitos del a�o |
Y | �ltimo d�gito del a�o |
MONTH | nombre completo del mes(9-letras) - todos los caracteres en may�sculas |
Month | nombre completo del mes(9-letras) - el primer car�cter en may�sculas |
month | nombre completo del mes(9-letras) - todos los caracteres en min�sculas |
MON | nombre abreviado del mes(3-letras) -todos los caracteres en may�sculas |
Mon | nombre abreviado del mes(3-letras) - el primer car�cter en may�sculas |
mon | nombre abreviado del mes(3-letras) - todos los caracteres en min�sculas |
MM | mes (01-12) |
DAY | nombre completo del d�a(9-letters) - todos los caracteres en may�sculas |
Day | nombre completo del d�a(9-letters) - el primer car�cter en may�sculas |
day | nombre completo del d�a(9-letters) - todos los caracteres en min�sculas |
DY | nombre abreviado del d�a(3-letters) - todos los caracteres en may�sculas |
Dy | nombre abreviado del d�a(3-letters) - el primer car�cter en may�sculas |
dy | nombre abreviado del d�a(3-letters) - todos los caracteres en min�sculas |
DDD | d�a del a�o(001-366) |
DD | d�a del mes(01-31) |
D | d�a de la semana(1-7; SUN=1) |
W | semana del mes |
WW | n�mero de la semana en el a�o |
CC | centuria (2-digits) |
J | d�a juliano(dias desde Enero 1, 4712 BC) |
Q | quarter |
RM | mes en n�meral romano(I-XII; I=ENE) |
Todos los format-pictures permiten usar sufijos (postfix / prefix). El sufijo es valido para una near format-picture. El 'FX' es solo prefijo global.
Tabla 8. Suffixes para format-pictures para date/time to_char() version.
Sufijo | Descripci�n | Ejemplo |
---|
FM | modo rellenado- prefix | FMMonth |
TH | numero ordinal superior - postfix | DDTH |
th | numero ordinal inferior - postfix | DDTH |
FX | FX - (Fixed format) conmutador global de format-picture .
The TO_DATETIME / TO_DATE salta los espacios en blanco si esta opci�n no es usada. Debe ser usada como primer item en formt-picture. | FX Month DD Day |
SP | spell mode (not implement now) | DDSP |
'\' - debe ser usado como doble \\, ejemplo '\\HH\\MI\\SS'
'"' - el texto entre comillas es saltado y no retocado.
Si quieres escribir ' " ' a la salida debes usar \\", ejemplo ' \\"YYYY Month\\" '. .
text - el to_char()de PostgreSQL soporta texto sin '"', pero el texto entre las comillas es mas r�pido y tienes la seguridad que el texto no ser� interpretado como keyword (format-picture), ejemplo '"Hello Year: "YYYY'. .
Tabla 9. Format-pictures para number (int/float/numeric) to_char() version.
Format-picture | Descripci�n |
---|
9 | valor retornado con el n�mero especificado de d�gitos y si no estan disponibles usa espacios en blanco |
0 | como 9, pero en lugar de espacios en blanco usa ceros |
. (period) | punto decimal |
, (comma) | separador de grupo (miles) |
PR | retorna el valor negativo en angle brackets |
S | retorna el valor negativo con el signo menos (usa locales) |
L | s�mbolo monetario (usa locales) |
D | punto decimal (usa locales) |
G | separador de grupos (usa locales) |
MI | retorna el signo menos en la posici�n especificada (si n�mero < 0) |
PL | retorna el signo mas en la posici�n especificada (si n�mero > 0) - PostgreSQL extension |
SG | retorna el signo mas/menos en la posici�n especificada - PostgreSQL extension |
RN | retorna el n�mero como n�mero romano(n�mero debe ser entre1 y 3999) |
TH or th | convierte el n�mero a n�mero ordinal (no convertir n�meros menores que cero y n�meros decimales) - PostgreSQL extension |
V | arg1 * (10 ^ n); - retorna un valor multiplicado por 10^n (donde 'n' es n�mero de '9's despues de 'V'). El to_char() no soporta el uso de 'V' y punto decimal juntos, ejemplo "99.9V99". |
EEEE | numeros cientificos . ahora no soportados. |
Note: Un signo formateado via 'SG', 'PL' o 'MI' is not anchor in number;
to_char(-12, 'S9999') produce:
,
but to_char(-12, 'MI9999') produce:
.
Oracle no permite usar 'MI' delante de '9', en Oracle tiene que ser siempre despues de '9'.
Tabla 10. El to_char() en ejemplos.
Input | Output |
---|
to_char(now(), 'Day, HH12:MI:SS') | |
to_char(now(), 'FMDay, HH12:MI:SS') | |
to_char( -0.1, '99.99') | |
to_char( -0.1, 'FM9.99') | |
to_char( 0.1, '0.9') | |
to_char( 12, '9990999.9') | |
to_char( 12, 'FM9990999.9') | |
to_char( 485, '999') | |
to_char( -485, '999') | |
to_char( 485, '9 9 9') | |
to_char( 1485, '9,999') | |
to_char( 1485, '9G999') | |
to_char( 148.5, '999.999') | |
to_char( 148.5, '999D999') | |
to_char( 3148.5,'9G999D999') | |
to_char( -485, '999S') | |
to_char( -485, '999MI') | |
to_char( 485, '999MI') | |
to_char( 485, 'PL999') | |
to_char( 485, 'SG999') | |
to_char( -485, 'SG999') | |
to_char( -485, '9SG99') | |
to_char( -485, '999PR') | |
to_char( 485, 'L999') | |
to_char( 485, 'RN') | |
to_char( 485, 'FMRN') | |
to_char( 5.2, 'FMRN') | |
to_char( 482, '999th') | |
to_char( 485, '"Good number:"999') | |
to_char( 485.8, '"Pre-decimal:"999" Post-decimal:" .999') | 'Pre-decimal: 485 Post-decimal: .800' |
|
to_char( 12, '99V999') | |
to_char( 12.4, '99V999') | |
to_char( 12.45, '99V9') | |