TO_CHAR - Amazon Redshift

Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del 1 de noviembre de 2025. Si desea utilizar las UDF de Python, créelas antes de esa fecha. Las UDF de Python existentes seguirán funcionando con normalidad. Para obtener más información, consulte la publicación del blog.

TO_CHAR

TO_CHAR convierte una marca temporal o una expresión numérica a un formato de datos de cadena de caracteres.

Sintaxis

TO_CHAR (timestamp_expression | numeric_expression , 'format')

Argumentos

timestamp_expression

Una expresión que da lugar a un valor de tipo TIMESTAMP o TIMESTAMPTZ, o bien, un valor que se pueda convertir de forma implícita en una marca temporal.

numeric_expression

Una expresión que de como resultado un valor de tipo de datos numérico o un valor que se pueda convertir implícitamente en un tipo numérico. Para obtener más información, consulte Tipos numéricos. TO_CHAR inserta un espacio a la izquierda de la cadena numérica.

nota

TO_CHAR no admite valores DECIMAL de 128 bits.

formato

El formato para el valor nuevo. Para conocer los formatos válidos, consulte Cadenas de formatos de fecha y hora y Cadenas de formatos numéricos.

Tipo de retorno

VARCHAR

Ejemplos

En el ejemplo siguiente, se convierte una marca temporal en un valor con la fecha y la hora en un formato con el nombre del mes relleno con nueve caracteres, el nombre del día de la semana y el número de día del mes.

select to_char(timestamp '2009-12-31 23:15:59', 'MONTH-DY-DD-YYYY HH12:MIPM'); to_char ------------------------- DECEMBER -THU-31-2009 11:15PM

En el siguiente ejemplo, se convierte una marca temporal en un valor con el número de día del año.

select to_char(timestamp '2009-12-31 23:15:59', 'DDD'); to_char ------------------------- 365

En el siguiente ejemplo, se convierte una marca temporal en un número de día de ISO de la semana.

select to_char(timestamp '2022-05-16 23:15:59', 'ID'); to_char ------------------------- 1

El siguiente ejemplo extrae el nombre del mes de una fecha.

select to_char(date '2009-12-31', 'MONTH'); to_char ------------------------- DECEMBER

En el siguiente ejemplo, se convierte cada valor STARTTIME en la tabla EVENT a una cadena que consta de horas, minutos y segundos.

select to_char(starttime, 'HH12:MI:SS') from event where eventid between 1 and 5 order by eventid; to_char ---------- 02:30:00 08:00:00 02:30:00 02:30:00 07:00:00

En el siguiente ejemplo, se convierte un valor completo de marca temporal a un formato diferente.

select starttime, to_char(starttime, 'MON-DD-YYYY HH12:MIPM') from event where eventid=1; starttime | to_char ---------------------+--------------------- 2008-01-25 14:30:00 | JAN-25-2008 02:30PM

En el siguiente ejemplo, se convierte un literal de marca temporal a una cadena de caracteres.

select to_char(timestamp '2009-12-31 23:15:59','HH24:MI:SS'); to_char ---------- 23:15:59

En el siguiente ejemplo, se convierte un número decimal en una cadena de caracteres.

select to_char(125.8, '999.99'); to_char --------- 125.80

En el siguiente ejemplo, se convierte un número decimal en una cadena de caracteres.

select to_char(125.8, '999D99'); to_char --------- 125.80

En el siguiente ejemplo, se convierte un número en una cadena de caracteres con un cero a la izquierda.

select to_char(125.8, '0999D99'); to_char --------- 0125.80

En el siguiente ejemplo se convierte un número a una cadena de caracteres con el signo negativo al final.

select to_char(-125.8, '999D99S'); to_char --------- 125.80-

En el siguiente ejemplo se convierte un número a una cadena de caracteres con el signo positivo o negativo en la posición especificada.

select to_char(125.8, '999D99SG'); to_char --------- 125.80+

En el siguiente ejemplo se convierte un número a una cadena de caracteres con el signo positivo en la posición especificada.

select to_char(125.8, 'PL999D99'); to_char --------- + 125.80

En el siguiente ejemplo se convierte un número a una cadena de caracteres con el símbolo de moneda.

select to_char(-125.88, '$S999D99'); to_char --------- $-125.88

En el siguiente ejemplo se convierte un número a una cadena de caracteres con el símbolo de moneda en la posición especificada.

select to_char(-125.88, 'S999D99L'); to_char --------- -125.88$

En el siguiente ejemplo, se convierte un número a una cadena de caracteres utilizando un separador de millar (coma).

select to_char(1125.8, '9,999.99'); to_char --------- 1,125.80

En el siguiente ejemplo, se convierte un número a una cadena de caracteres con corchetes angulares para números negativos.

select to_char(-125.88, '$999D99PR'); to_char --------- $<125.88>

En el siguiente ejemplo se convierte un número a una cadena de números romanos.

select to_char(125, 'RN'); to_char --------- CXXV

En el siguiente ejemplo, se convierte una fecha a un código de siglo.

select to_char(date '2020-12-31', 'CC'); to_char --------- 21

En el ejemplo siguiente se muestra el día de la semana.

SELECT to_char(current_timestamp, 'FMDay, FMDD HH12:MI:SS'); to_char ----------------------- Wednesday, 31 09:34:26

En el ejemplo siguiente se muestra el sufijo de número ordinal de un número.

SELECT to_char(482, '999th'); to_char ----------------------- 482nd

En el siguiente ejemplo, se resta la comisión del precio pagado en la tabla de ventas. La diferencia, luego, se redondea hacia arriba y se convierte en un número romano, que se muestra en la columna to_char:

select salesid, pricepaid, commission, (pricepaid - commission) as difference, to_char(pricepaid - commission, 'rn') from sales group by sales.pricepaid, sales.commission, salesid order by salesid limit 10; salesid | pricepaid | commission | difference | to_char ---------+-----------+------------+------------+----------------- 1 | 728.00 | 109.20 | 618.80 | dcxix 2 | 76.00 | 11.40 | 64.60 | lxv 3 | 350.00 | 52.50 | 297.50 | ccxcviii 4 | 175.00 | 26.25 | 148.75 | cxlix 5 | 154.00 | 23.10 | 130.90 | cxxxi 6 | 394.00 | 59.10 | 334.90 | cccxxxv 7 | 788.00 | 118.20 | 669.80 | dclxx 8 | 197.00 | 29.55 | 167.45 | clxvii 9 | 591.00 | 88.65 | 502.35 | dii 10 | 65.00 | 9.75 | 55.25 | lv

En el siguiente ejemplo, se agrega el símbolo de la moneda a los valores de diferencia que se muestran en la columna to_char:

select salesid, pricepaid, commission, (pricepaid - commission) as difference, to_char(pricepaid - commission, 'l99999D99') from sales group by sales.pricepaid, sales.commission, salesid order by salesid limit 10; salesid | pricepaid | commission | difference | to_char --------+-----------+------------+------------+------------ 1 | 728.00 | 109.20 | 618.80 | $ 618.80 2 | 76.00 | 11.40 | 64.60 | $ 64.60 3 | 350.00 | 52.50 | 297.50 | $ 297.50 4 | 175.00 | 26.25 | 148.75 | $ 148.75 5 | 154.00 | 23.10 | 130.90 | $ 130.90 6 | 394.00 | 59.10 | 334.90 | $ 334.90 7 | 788.00 | 118.20 | 669.80 | $ 669.80 8 | 197.00 | 29.55 | 167.45 | $ 167.45 9 | 591.00 | 88.65 | 502.35 | $ 502.35 10 | 65.00 | 9.75 | 55.25 | $ 55.25

En el siguiente ejemplo, se indica el siglo en el que se realizó la venta.

select salesid, saletime, to_char(saletime, 'cc') from sales order by salesid limit 10; salesid | saletime | to_char ---------+---------------------+--------- 1 | 2008-02-18 02:36:48 | 21 2 | 2008-06-06 05:00:16 | 21 3 | 2008-06-06 08:26:17 | 21 4 | 2008-06-09 08:38:52 | 21 5 | 2008-08-31 09:17:02 | 21 6 | 2008-07-16 11:59:24 | 21 7 | 2008-06-26 12:56:06 | 21 8 | 2008-07-10 02:12:36 | 21 9 | 2008-07-22 02:23:17 | 21 10 | 2008-08-06 02:51:55 | 21

En el siguiente ejemplo, se convierte cada valor STARTTIME en la tabla EVENT en una cadena que consta de horas, minutos, segundos y zona horaria.

select to_char(starttime, 'HH12:MI:SS TZ') from event where eventid between 1 and 5 order by eventid; to_char ---------- 02:30:00 UTC 08:00:00 UTC 02:30:00 UTC 02:30:00 UTC 07:00:00 UTC

En el siguiente ejemplo, se muestra el formato para segundos, milisegundos y microsegundos.

select sysdate, to_char(sysdate, 'HH24:MI:SS') as seconds, to_char(sysdate, 'HH24:MI:SS.MS') as milliseconds, to_char(sysdate, 'HH24:MI:SS:US') as microseconds; timestamp | seconds | milliseconds | microseconds --------------------+----------+--------------+---------------- 2015-04-10 18:45:09 | 18:45:09 | 18:45:09.325 | 18:45:09:325143