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 CASTun 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 CASTtesto 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.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.