Introduzione
Quando lavorate con i dati memorizzati in PostgreSQL, potreste avere alcuni dati che preferireste trattare come un tipo di dati diverso. Per esempio, potreste avere un valore di testo che rappresenta un numero, come “53”. Per eseguire calcoli su quel valore, potrebbe avere più senso convertire quel valore in un intero. In Postgres, la funzione CAST
è usata per convertire il tipo di dati di un valore in un tipo di dati diverso. Il valore deve essere compatibile con il tipo di dati desiderato, altrimenti verrà restituito un errore. In questo articolo su PostgreSQL, ti mostreremo come usare la funzione CAST
di PostgreSQL e rivedremo alcuni esempi di diverse conversioni.
Prequisiti
Prima di procedere con questo tutorial, due prerequisiti chiave dovrebbero essere presenti:
- Devi avere PostgreSQL installato e configurato sul tuo computer.
- Devi avere qualche conoscenza di base di PostgreSQL.
Funzione CAST di PostgreSQL
Ci sono due modi per CAST
un valore in PostgreSQL. Nel primo metodo, si specifica il valore e il tipo di dati desiderato all’interno delle parentesi della funzione CAST
. La sintassi è mostrata qui sotto:
1
|
SELECT CAST ( VALUE AS TYPE )
|
Un altro modo per lanciare un valore è usando la notazione ::
tra il valore e il tipo di dati desiderato. Puoi vedere la sintassi qui sotto:
1
|
SELECT VALUE::TYPE
|
In questa sintassi, value
rappresenta il valore che vuoi lanciare o cambiare il tipo di dati.Il type
rappresenta il tipo di dati a cui state mirando per questo valore; alcuni possibili valori di type
includono INTEGER
, FLOAT
e CHAR
.
Postgres CAST Example
Guardiamo alcuni esempi di come usare la funzione CAST
di Postgres.
Postgres CAST to String
Per il nostro primo esempio, faremo il cast di un valore come un valore stringa. Possiamo vedere come questo viene fatto nella seguente dichiarazione SELECT
:
1
2 3 4 5 |
SELECT CAST( 5137 AS TEXT );
text —— 5137 (1 ROW) |
Postgres CAST to Integer
In seguito, convertiremo un valore di tipo testo in un intero. La seguente dichiarazione mostra come si fa:
1
2 3 4 5 |
SELECT CAST( ‘214’ AS INTEGER );
int4 —— 214 (1 ROW) |
Nell’esempio mostrato sotto, faremo il cast di un valore intero nel tipo di dati MONEY
. Possiamo vedere come funziona nella seguente dichiarazione:
1
2 3 4 5 |
SELECT CAST(7419 AS MONEY);
money ———– $7,419.00 (1 ROW) |
Postgres CAST to Interval
Il nostro prossimo esempio fonderà un valore di testo nel tipo di dati INTERVAL
. La seguente dichiarazione SELECT
mostra come funziona:
1
2 3 4 5 |
SELECT CAST (‘1 anno 2 mesi 7 giorni’ AS INTERVAL);
INTERVAL ———————- 1 ANNO 2 mesi 7 giorni (1 ROW) |
Postgres CAST to Date
Possiamo anche usare la funzione CAST
per convertire un valore di testo in un tipo di dati DATE
come visto nell’esempio qui sotto:
1
2 3 4 5 |
SELECT CAST( ‘July 24, 1999’ AS DATE );
DATE ———— 1999-07-24 (1 ROW) |
Ecco un altro modo di CAST
testo come data:
1
2 3 4 5 |
SELECT CAST( ’24-07-99′ AS DATE );
DATE ———— 1999-07-24 (1 ROW) |
Postgres CAST With Trim
Nell’esempio mostrato sotto, taglieremo un valore di testo, poi faremo il cast del risultato restituito da TRIM
:
1
2 3 4 5 |
SELECT CAST( TRIM( LEADING ‘DATE ‘ FROM ‘DATE January 28, 1998’ ) AS DATE);
ltrim ———— 1998-01-28 (1 ROW) |
Postgres CAST Con Concatenazione
Possiamo concatenare due o più stringhe usando l’operatore ||
. Nel nostro ultimo esempio, concateneremo un valore di stringa con un valore di data che è castato a TEXT
. La dichiarazione seguente mostra come si fa:
1
2 3 4 5 |
SELECT ‘The current date is ‘ || CAST( CURRENT_DATE AS TEXT );
?COLUMN? ——————————– The CURRENT DATE IS 2020-03-28 (1 ROW) |
Conclusione
Quando interroghi i dati in PostgreSQL, potresti voler convertire i valori di alcune colonne in un tipo di dati diverso. Cambiare il tipo di dati può rendere più facile eseguire calcoli e operazioni di elaborazione sui dati restituiti. In questo articolo, vi abbiamo mostrato come usare la funzione CAST di Postgres per convertire il tipo di dati di un valore. Se avete seguito tutti gli esempi presentati in questo articolo, sarete in grado di usare efficacemente la funzione CAST
nelle vostre query PostgreSQL.