Wprowadzenie
Podczas pracy z danymi przechowywanymi w PostgreSQL mogą pojawić się dane, które wolisz traktować jako inny typ danych. Na przykład, możesz mieć wartość tekstową, która reprezentuje liczbę, taką jak „53”. Aby wykonać obliczenia na tej wartości, sensowniejsze może być przekonwertowanie jej na liczbę całkowitą. W Postgres funkcja CAST
jest używana do konwersji typu danych wartości na inny typ danych. Wartość musi być zgodna z docelowym typem danych, w przeciwnym razie zostanie zwrócony błąd. W tym artykule pokażemy, jak korzystać z funkcji PostgreSQL CAST
oraz omówimy kilka przykładów różnych konwersji.
Warunki wstępne
Przed przystąpieniem do pracy z tym samouczkiem należy spełnić dwa kluczowe warunki wstępne:
- Na komputerze musi być zainstalowany i skonfigurowany serwer PostgreSQL.
- Musisz posiadać podstawową wiedzę na temat PostgreSQL.
Funkcja CAST w PostgreSQL
W PostgreSQL istnieją dwa sposoby CAST
podania wartości. W pierwszym przypadku określamy wartość oraz docelowy typ danych wewnątrz nawiasów funkcji CAST
. Składnia jest przedstawiona poniżej:
1
|
SELECT CAST ( VALUE AS TYPE )
|
Innym sposobem rzutowania wartości jest użycie notacji ::
pomiędzy wartością a docelowym typem danych. Możesz zobaczyć składnię poniżej:
1
|
SELECT VALUE::TYPE
|
W tej składni, value
reprezentuje wartość, którą chcesz rzucić lub zmienić typ danych.type
reprezentuje typ danych, do którego dążysz dla tej wartości; kilka możliwych wartości type
obejmuje INTEGER
, FLOAT
i CHAR
.
Postgres CAST Przykład
Przyjrzyjrzyjmy się kilku przykładom użycia funkcji Postgres CAST
.
Postgres CAST to String
Dla naszego pierwszego przykładu, będziemy rzutować wartość jako wartość łańcuchową. Możemy zobaczyć, jak to się robi w następującej SELECT
instrukcji:
1
2 3 4 5 |
SELECT CAST( 5137 AS TEXT );
text —— 5137 (1 ROW) |
Postgres CAST to Integer
Następnie przekonwertujemy wartość o typie tekstowym na liczbę całkowitą. Poniższa instrukcja pokazuje jak to zrobić:
1
2 3 4 5 |
SELECT CAST( '214′ AS INTEGER );
int4 —— 214 (1 ROW) |
W przedstawionym poniżej przykładzie będziemy rzutować wartość całkowitą na typ danych MONEY
. Możemy zobaczyć, jak to działa w następującej instrukcji:
1
2 3 4 5 |
SELECT CAST(7419 AS MONEY);
money ———– $7,419.00 (1 ROW) |
Postgres CAST to Interval
Nasz kolejny przykład rzutuje wartość tekstową na typ danych INTERVAL
. Poniższa instrukcja SELECT
pokazuje jak to działa:
1
2 3 4 5 |
SELECT CAST (’1 year 2 months 7 days’ AS INTERVAL);
INTERVAL ———————- 1 YEAR 2 mons 7 days (1 ROW) |
Postgres CAST to Date
Możemy również użyć funkcji CAST
do przekonwertowania wartości tekstowej na typ danych DATE
, jak widać na poniższym przykładzie:
1
2 3 4 5 |
SELECT CAST( 'July 24, 1999′ AS DATE );
DATE ———— 1999-07-24 (1 ROW) |
Jest jeszcze jeden sposób na CAST
tekst jako datę:
1
2 3 4 5 |
SELECT CAST( ’24-07-99′ AS DATE );
DATE ———— 1999-07-24 (1 ROW) |
Postgres CAST With Trim
W przedstawionym poniżej przykładzie przytniemy wartość tekstową, a następnie rzucimy wynik, który zostanie zwrócony z 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 With Concatenation
Możemy konkatenować dwa lub więcej ciągów znaków za pomocą operatora ||
. W naszym ostatnim przykładzie, będziemy konkatenować wartość łańcuchową z wartością daty, która jest rzutowana na TEXT
. Poniższa instrukcja pokazuje, jak to zrobić:
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) |
Wnioski
Podczas wykonywania zapytań do danych w PostgreSQL, możesz chcieć, aby wartości niektórych kolumn zostały przekonwertowane na inny typ danych. Zmiana typu danych może ułatwić wykonywanie obliczeń i operacji przetwarzania na zwróconych danych. W tym artykule pokazaliśmy, jak używać funkcji Postgres CAST do konwersji typu danych wartości. Jeśli prześledziłeś wszystkie przykłady przedstawione w tym artykule, będziesz w stanie efektywnie wykorzystywać funkcję CAST
w swoich własnych zapytaniach PostgreSQL.