Datatyyppien Casting Postgresql:ssä
Datan muuntaminen on yleistä kaikissa ohjelmointiparadigmoissa, erityisesti käsiteltäessä tietokantojen transaktioita. Kuten muissakin tietokannoissa, postgresql-tietokanta tarjoaa CAST-operaatiot, jotka mahdollistavat yhden tietotyypin muuntamisen toiseksi. Postgresql:ssä on erilaisia cast-operaatioita, joilla muunnetaan merkkijono kokonaisluvuiksi, valetaan Boolean-arvoksi, valetaan merkkijono päivämääräksi ja päinvastoin. Tässä artikkelissa esitellään esimerkkien avulla CAST-operaattorin toimintoja postgresqlissa. Tätä operaattoria käytettäessä käytetään seuraavaa syntaksia:
1
|
CAST (lauseke AS kohdetyyppi );
|
jolloin lauseke voi olla joko vakio, taulukon sarake tai tiettyyn arvoon evaluoituva lauseke. Target_type on kohdetietotyyppi, johon lausekkeemme muuntamisen jälkeen johtaa.Toinen versio castingista postgresql:ssä liittyy ::
-operaattorin käyttöön. Tässä tapauksessa syntaksi on seuraava:
1
|
Expression :: type
|
Katsotaan nyt muutama esimerkki CAST-operaattorin käytöstä.
merkkijonon muuntaminen kokonaisluvuksi Casting
Muuntaessamme merkkijonon kokonaisluvuksi käytämme seuraavaa lauseketta
1
2 |
SELECT
CAST (’500’ AS INTEGER); |
Tässä kuvassa merkkijonotyyppi ”500” castataan ja kokonaislukutyypiksi 500. Tärkeää on muistaa, että muunnos onnistuu, kun kohdetietotyyppi on yhteensopiva lausekkeen kanssa. Yllä olevaa esimerkkiä käyttäen postgresql tekisi tyyppimuunnosvirheen, kun korvaamme lausekkeen ”500” lausekkeella ”a500”, koska ne eivät ole yhteensopivia.
Postgres cast to Boolean
Castaus lausekkeista Booleaniin muuntaa ne loogisiksi tietotyypeiksi. Alla on esimerkki, jossa käytetään CAST ( ) -funktiota merkkijonojen, char- ja kokonaislukulausekkeiden valamiseen Boolean-tietotyypeiksi.
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 valaa aikaleiman päivämäärän muotoon
Saatamme täsmällisen päivämäärän tietystä aikaleimasta käyttämällä Cast :: -operaattoria, jossa syötteenä on aikaleima ja lisätään ::date-suffiksi:
Syntaksi on seuraava:
1
|
SELECT-ilmaus ::TIMESTAMP::DATE;
|
Toteutetaan esimerkki, kun halutaan poimia päivämäärästä ’2019-07-13 1:20:50′ arvoon ’2019-07-13’ Cast-lyhenteinen kyselymme olisi:
1
|
SELECT ’2019-07-13 1:20:50’::TIMESTAMP::DATE;
|
Postgresql cast double precision to numeric.
Kaksoistarkkuuden lauseke vie enemmän desimaaleja verrattuna float-tietotyyppeihin. Prosessorin muistin ollessa kyseessä kaksinkertaisen tarkkuuden tyypit voivat viedä jopa 64 bittiä muistia. Kun muunnetaan kaksinkertaisesta tarkkuudesta, se on melko samanlainen kuin lausekkeen pyöristäminen. Castingia käytetään kuitenkin silloin, kun lausekkeesta halutaan saada tarkka tulos. Alla olevassa esimerkissä käytämme cast-operaattoria ::
yhdessä Select-lauseen kanssa havainnollistamaan muunnosta.
Syntaksi : SELECT (Double precision :: numeric);SELECT (33.135941093 :: numeric);
Vaihtoehtoinen tapa on käyttää cast ()-funktiota alla esitetyllä tavalla:
Syntaksi :
SELECT CAST (Double precision AS numeric)
1
2 |
SELECT
CAST ( 33.135941093 AS numeric) |
Postgresql Cast merkkijono päivämääräksi
Seuraava esimerkki havainnollistaa merkkijonon valu päivämääräksi sql-komennolla SELECT:
1
2 3 |
SELECT
CAST (’2019-07-14’ AS DATE), CAST (’13-JULY-2019′ AS DATE); |
Esimerkissä muunnetaan ensin merkkijono ’2019-07-14′ 14. heinäkuuta 2019:ksi, kun taas toisessa osassa muunnetaan ’13-JULI-2019’ 13. heinäkuuta 2019:ksi.
Johtopäätös
Olemme näyttäneet sinulle useita valutekniikoita sekä useita esimerkkejä. Toivomme, että löysit jonkin näistä esimerkeistä hyödylliseksi ja pystyt soveltamaan oppimaasi omaan sovellukseesi.
Jos tarvitset apua PostgreSQL-tietokantasi perustamisessa tai hallinnoinnissa, älä epäröi ottaa yhteyttä Object Rocketiin keskustellaksemme projektisi yksityiskohdista ja selvittääksemme, voimmeko auttaa.