Casting w PostgreSQL

Casting typów danych w Postgresql

Konwersja danych jest powszechna we wszystkich paradygmatach programowania, szczególnie podczas obsługi transakcji w bazach danych. Podobnie jak w innych bazach danych postgresql udostępnia operacje CAST, które umożliwiają konwersję jednego typu danych na inny. Istnieją różne operacje rzutowania w postgresql do konwersji łańcuchów na liczby całkowite, rzutowania na Boolean, rzutowania łańcuchów na daty i vice versa. Ten artykuł ilustruje na przykładach funkcje operatora CAST w postgresql. Podczas używania tego operatora wykorzystywana jest następująca składnia:

1
CAST (wyrażenie AS target_type );

gdzie wyrażenie może być stałą, kolumną tabeli lub wyrażeniem, które ocenia się na określoną wartość. Typ_docelowy jest docelowym typem danych, do którego nasze wyrażenie zostanie przekonwertowane. Inną wersją rzutowania w postgresql jest użycie operatora ::. Składnia w tym przypadku wygląda następująco:

1
Wyrażenie :: typ

Zajmijmy się teraz kilkoma przykładami z wykorzystaniem operatora CAST.

Przekształcanie ciągu znaków na liczbę całkowitą Casting

Przy konwersji ciągu znaków na liczbę całkowitą używamy następującego wyrażenia

1
2
SELECT
CAST (’500′ AS INTEGER);

Ta ilustracja rzutuje typ łańcuchowy „500” na typ całkowity 500. Jedną z kluczowych rzeczy do zapamiętania jest to, że udana konwersja ma miejsce, gdy docelowy typ danych jest zgodny z wyrażeniem. Używając powyższego przykładu, postgresql zwróciłby błąd konwersji typu, gdy zamienimy wyrażenie „500” na „a500”, ponieważ nie są one kompatybilne.

Postgres cast to Boolean

Castowanie wyrażeń do Boolean konwertuje je na logiczne typy danych. Poniżej znajduje się przykład, który używa funkcji CAST ( ) do rzutowania łańcuchów, znaków i liczb całkowitych na typy danych Boolean.

1
2
3
4
5
6
7
SELECT
CAST(’1′ as BOOLEAN),
CAST(’0′ as BOOLEAN);
CAST(’true’ AS BOOLEAN),
CAST(’false’ as BOOLEAN),
CAST(’T’ as BOOLEAN),
CAST(’F’ as BOOLEAN);

Postgresql cast timestamp to date

Dokładną datę z określonego timestampa uzyskujemy za pomocą operatora Cast :: z timestampem jako wejściem i dodając przyrostek ::date:

Składnia jest następująca:

1
SELECT expression ::TIMESTAMP::DATE;

Przyjmij przykład, gdy chcesz wyodrębnić z '2019-07-13 1:20:50′ do '2019-07-13′ Nasze zapytanie Cast byłoby:

1
SELECT '2019-07-13 1:20:50′::TIMESTAMP::DATE;

Postgresql cast double precision to numeric.

Wyrażenie podwójnej precyzji przyjmuje więcej punktów dziesiętnych w porównaniu do typów danych float. W przypadku pamięci procesora, typy podwójnej precyzji mogą zajmować do 64 bitów pamięci. Podczas konwersji z podwójnej precyzji, jest to dość podobne do zaokrąglania wyrażenia. Jednak rzutowanie jest używane, gdy chcemy uzyskać dokładny wynik z wyrażenia. W poniższym przykładzie użyjemy operatora rzutowania :: wraz z instrukcją Select, aby zilustrować konwersję.

Syntax : SELECT (Double precision :: numeric);SELECT (33.135941093 :: numeric);

Alternatywnym sposobem jest użycie funkcji cast (), jak wskazano poniżej:

Syntax :

SELECT CAST (Double precision AS numeric)

1
2
SELECT
CAST ( 33.135941093 AS numeric)

Postgresql Cast string to a date

Następujący przykład ilustruje rzutowanie ciągu znaków na datę za pomocą polecenia sql SELECT:

1
2
3
SELECT
CAST (’2019-07-14′ AS DATE),
CAST (’13-JULY-2019′ AS DATE);

W przykładzie najpierw konwertujemy ciąg '2019-07-14′ na 14 lipca 2019 roku, natomiast w drugiej części konwertujemy ’13-lipiec-2019′ na 13 lipca 2019 roku.

Zakończenie

Pokazaliśmy Ci kilka technik rzutowania wraz z kilkoma przykładami. Mamy nadzieję, że jeden z tych przykładów okazał się przydatny i będziesz w stanie zastosować to, czego się nauczyłeś, w swojej konkretnej aplikacji.

Jeśli potrzebujesz pomocy w konfiguracji lub zarządzaniu bazą danych PostgreSQL, nie wahaj się skontaktować z nami w Object Rocket, aby omówić szczegóły Twojego projektu i ustalić, czy możemy Ci pomóc.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.