Adattípusok Casting a Postgresql-ben
Az adatkonverzió minden programozási paradigmában gyakori, különösen az adatbázisok tranzakcióinak kezelése során. Más adatbázisokhoz hasonlóan a postgresql adatbázis is biztosítja a CAST műveleteket, amelyek lehetővé teszik az egyik adattípus átalakítását egy másikba. A postgresql-ben különböző cast műveletek vannak a string egész számokká való átalakítására, a Boolean-ba való átváltásra, a string dátumba való átváltására és fordítva. Ez a cikk példákkal illusztrálja a CAST operátor funkcióit a postgresql-ben. Ennek az operátornak a használata során a következő szintaxist használjuk:
1
|
CAST (expression AS target_type );
|
mivel a kifejezés lehet egy konstans, egy táblázat oszlop vagy egy kifejezés, amely egy adott értékre értékelődik. A target_type az a cél adattípus, amelyet a kifejezésünk az átalakítás után eredményez.A casting egy másik változata a postgresql-ben a ::
operátor használatát jelenti. A szintaxis ebben az esetben a következő:
1
|
Kifejezés :: type
|
Lássunk most néhány példát a CAST operátor használatával.
Stringből egész számba való átkonvertálás
A string egész számba való konvertálásakor a következő kifejezést használjuk
1
2 |
SELECT
CAST (‘500’ AS INTEGER); |
Ez az illusztráció az “500” típusú sztringet és az 500 típusú egész számot kasztolja. Az egyik legfontosabb dolog, amit nem szabad elfelejteni, hogy a sikeres konverzió akkor következik be, ha a cél adattípus kompatibilis a kifejezéssel. A fenti példát használva a postgresql típuskonverziós hibán keresztül típuskonverziós hibát okozna, ha az “500” kifejezést “a500”-ra cserélnénk, mivel ezek nem kompatibilisek.
Postgres cast to Boolean
A kifejezések Boolean-ra történő átvétele logikai adattípusokká alakítja őket. Az alábbi példában a CAST ( ) függvényt használjuk a string, char és integer kifejezések Boolean adattípusokká történő átkonvertálására.
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
A pontos dátumot egy adott időbélyegből a Cast :: operátort használjuk az időbélyeggel bemenetként, és hozzáadjuk a ::date utótagot:
A szintaxis a következő:
1
|
SELECT kifejezés ::TIMESTAMP::DATE;
|
Vegyünk egy példát, amikor ‘2019-07-13 1:20:50′-től ‘2019-07-13’-ig szeretnénk kivenni a Cast lekérdezésünk a következő lenne:
1
|
SELECT ‘2019-07-13 1:20:50’::TIMESTAMP::DATE;
|
Postgresql cast double precision to numeric.
A kétszeres pontosságú kifejezés több tizedesjegyet vesz fel a float adattípusokhoz képest. A processzormemória esetében a kettős pontosságú típusok akár 64 bites memóriát is elfoglalhatnak. Kettős pontosságúból való konvertáláskor ez nagyon hasonló a kifejezés kerekítéséhez. A castingot azonban akkor használjuk, ha a kifejezésből pontos eredményt szeretnénk kapni. Az alábbi példában az ::
cast operátort a Select utasítással együtt használjuk az átalakítás szemléltetésére.
Szintaktika : SELECT (Double precision :: numeric);SELECT (33.135941093 :: numeric);
Egy másik lehetőség a cast () függvény használata az alábbiak szerint:
Szintaktika :
SELECT CAST (Double precision AS numeric)
1
2 |
SELECT
CAST ( 33.135941093 AS numeric) |
Postgresql Cast string to a date
A következő példa a string castingot dátumra szemlélteti a sql parancs SELECT használatával:
1
2 3 |
SELECT
CAST (‘2019-07-14’ MINT DÁTUM), CAST (’13-JULY-2019′ MINT DÁTUM); |
A példában először a ‘2019-07-14′ karakterláncot alakítjuk át 2019. július 14-re, míg a második részben a ’13-JÚLIUS-2019’ karakterláncot 2019. július 13-ra.
Következtetés
Megmutattuk a casting több technikáját számos példával együtt. Reméljük, hogy valamelyik példát hasznosnak találta, és képes lesz alkalmazni a tanultakat a saját konkrét alkalmazásában.
Ha segítségre van szüksége PostgreSQL-adatbázisának beállításához vagy kezeléséhez, kérjük, ne habozzon, forduljon hozzánk az Object Rockethez, hogy megbeszéljük projektjének részleteit, és megállapítsuk, tudunk-e segíteni.