TO_CHAR - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il post del blog.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

TO_CHAR

TO_CHAR converte un timestamp o un'espressione numerica in un formato di dati carattere-stringa.

Sintassi

TO_CHAR (timestamp_expression | numeric_expression , 'format')

Arguments (Argomenti)

timestamp_expression

Un'espressione che restituisce un valore di tipo TIMESTAMP o TIMESTAMPTZ o un valore che può essere implicitamente costretto in un timestamp.

numeric_expression

Un'espressione che restituisce un valore di tipo di dati numerici un valore che può essere implicitamente costretto in un tipo numerico. Per ulteriori informazioni, consultare Tipi numerici. TO_CHAR inserisce uno spazio a sinistra della stringa numerica.

Nota

TO_CHAR non supporta i valori DECIMAL a 128 bit.

format

Il formato per il nuovo valore. Per i formati validi, consultare Stringhe di formato datetime e Stringhe di formato numerico.

Tipo restituito

VARCHAR

Esempi

Nell'esempio seguente un timestamp viene convertito in un valore con la data e l'ora in un formato con il nome del mese a nove caratteri, il nome del giorno della settimana e il numero del giorno del mese.

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

Nell'esempio seguente un timestamp viene convertito in un valore con il numero di giorno dell'anno.

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

Nell'esempio seguente un timestamp viene convertito in un numero di giorno ISO della settimana.

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

L'esempio seguente estrae il nome del mese da un valore di data.

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

Nell'esempio seguente viene convertito ogni valore STARTTIME nella tabella EVENT in una stringa composta da ore, minuti e secondi.

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

L'esempio seguente converte un intero valore timestamp in un formato diverso.

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

L'esempio seguente converte un letterale di timestamp in una stringa di caratteri.

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

L’esempio seguente converte un numero in una stringa di caratteri.

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

L’esempio seguente converte un numero in una stringa di caratteri.

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

L’esempio seguente converte un numero in una stringa di caratteri con uno zero iniziale.

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

L'esempio seguente converte un numero in una stringa di caratteri con il segno negativo alla fine.

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

L’esempio seguente converte un numero in una stringa di caratteri con il segno positivo o negativo nella posizione specificata.

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

L’esempio seguente converte un numero in una stringa di caratteri con il segno positivo nella posizione specificata.

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

L'esempio seguente converte un numero in una stringa di caratteri con il simbolo di valuta.

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

L’esempio seguente converte un numero in una stringa di caratteri con il simbolo di valuta nella posizione specificata.

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

L’esempio seguente converte un numero in una stringa di caratteri con un separatore (virgola) per le migliaia.

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

L'esempio seguente converte un numero in una stringa di caratteri con parentesi angolari per i numeri negativi.

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

L'esempio seguente converte un numero in una stringa di numeri romani.

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

L’esempio seguente converte una data in un codice del secolo.

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

L'esempio seguente mostra il giorno della settimana.

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

L'esempio seguente visualizza il suffisso numerico ordinale per un numero.

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

L'esempio seguente sottrae la commissione dal prezzo pagato nella tabella delle vendite. La differenza viene quindi arrotondata e convertita in un numero romano, mostrato nella colonna 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

L'esempio seguente aggiunge il simbolo di valuta ai valori di differenza mostrati nella colonna 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

L'esempio seguente elenca il secolo in cui è stata effettuata ciascuna vendita.

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

Nell'esempio seguente viene convertito ogni valore STARTTIME nella tabella EVENT in una stringa composta da ore, minuti, secondi e fuso orario.

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

L'esempio seguente mostra la formattazione per secondi, millisecondi e microsecondi.

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