Úvod

Při práci s daty uloženými v PostgreSQL můžete mít některá data, která byste raději zpracovali jako jiný datový typ. Můžete mít například textovou hodnotu, která představuje číslo, například „53“. Abyste mohli nad touto hodnotou provádět výpočty, může být rozumnější převést tuto hodnotu na celé číslo. V systému Postgres se k převodu datového typu hodnoty na jiný datový typ používá funkce CAST. Hodnota musí být kompatibilní s cílovým datovým typem, jinak bude vrácena chyba. V tomto článku o PostgreSQL si ukážeme, jak používat funkci PostgreSQL CAST, a projdeme si několik příkladů různých konverzí.

Předpoklady

Před pokračováním v tomto kurzu byste měli mít splněny dva klíčové předpoklady:

  • Na svém počítači musíte mít nainstalovaný a nakonfigurovaný PostgreSQL.
  • Musíte mít základní znalosti o PostgreSQL.

Funkce CAST v PostgreSQL

V PostgreSQL existují dva způsoby, jak CAST získat hodnotu. Při prvním způsobu zadáváme hodnotu a cílový datový typ uvnitř závorek funkce CAST. Syntaxe je uvedena níže:

1
SELECT CAST ( VALUE AS TYPE )

Druhý způsob obsazení hodnoty je pomocí zápisu :: mezi hodnotou a cílovým datovým typem. Syntaxi můžete vidět níže:

1
SELECT VALUE::TYPE

V této syntaxi value představuje hodnotu, kterou chcete castovat nebo změnit datový typ.type představuje datový typ, na který se u této hodnoty zaměřujete; mezi několik možných hodnot type patří INTEGER, FLOAT a CHAR.

Příklad funkce Postgres CAST

Podívejme se na několik příkladů použití funkce Postgres CAST.

Postgres CAST to String

V našem prvním příkladu budeme hodnotu castovat jako hodnotu řetězce. Jak se to provádí, vidíme v následujícím příkazu SELECT:

1
2
3
4
5
SELECT CAST( 5137 AS TEXT );
text
——
5137
(1 ŘÁDEK)

Postgres CAST to Integer

Napříště převedeme hodnotu s textovým typem na celé číslo. Následující příkaz ukazuje, jak se to provádí:

1
2
3
4
5
SELECT CAST( ‚214‘ AS INTEGER );
int4
——
214
(1 ŘÁDEK)

V níže uvedeném příkladu provedeme cast celé hodnoty na datový typ MONEY. Jak to funguje, můžeme vidět v následujícím příkazu:

1
2
3
4
5
SELECT CAST(7419 AS MONEY);
money
———–
$7,419.00
(1 ŘÁDEK)

Postgres CAST to Interval

Náš další příklad provede cast textové hodnoty na datový typ INTERVAL. Následující příkaz SELECT ukazuje, jak to funguje:

1
2
3
4
5
SELECT CAST (‚1 rok 2 měsíce 7 dní‘ AS INTERVAL);
INTERVAL
———————-
1 ROK 2 měsíce 7 dní
(1 ŘÁDEK)

Postgres CAST to Date

K převodu textové hodnoty na datový typ DATE můžeme použít také funkci CAST, jak je vidět v příkladu níže:

1
2
3
4
5
SELECT CAST( ’24. července 1999′ AS DATE );
DATE
————
1999-07-24
(1 ŘÁDEK)

Zde je další způsob, jak CAST text jako datum:

1
2
3
4
5
SELECT CAST( ’24-07-99′ AS DATE );
DATE
————
1999-07-24
(1 ŘÁDEK)

Postgres CAST With Trim

V níže uvedeném příkladu ořízneme textovou hodnotu a poté provedeme cast výsledku, který se nám vrátí z TRIM:

1
2
3
4
5
SELECT CAST( TRIM( LEADING ‚DATE ‚ FROM ‚DATE 28 January 1998‘ ) AS DATE);
ltrim
————
1998-01-28
(1 ŘÁDEK)

Postgres CAST se spojováním

Dva nebo více řetězců můžeme spojit pomocí operátoru ||. V našem posledním příkladu budeme konkatenovat řetězcovou hodnotu s hodnotou data, která je castována na TEXT. Následující příkaz ukazuje, jak se to provádí:

1
2
3
4
5
SELECT ‚Aktuální datum je ‚ || CAST( CURRENT_DATE AS TEXT );
?COLUMN?
——————————–
Aktuální datum je 2020-03-28
(1 řádek)

Závěr

Při dotazování na data v PostgreSQL můžete chtít hodnoty některých sloupců převést na jiný datový typ. Změna datového typu může usnadnit provádění výpočtů a operací zpracování vrácených dat. V tomto článku jsme si ukázali, jak pomocí funkce Postgres CAST převést datový typ hodnoty. Pokud jste postupovali podle všech příkladů uvedených v tomto článku, budete umět funkci CAST efektivně používat ve vlastních dotazech PostgreSQL.

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.