Casting i PostgreSQL

Casting af datatyper i Postgresql

Datakonvertering er almindeligt forekommende i alle programmeringsparadigmer, især når der håndteres transaktioner i databaser. Ligesom i andre databaser giver Postgresql-databasen mulighed for CAST-operationer, som muliggør konvertering af en datatype til en anden. Der findes forskellige cast-operationer i postgresql til konvertering af streng til hele tal, casting til boolske tal, casting af streng til dato og omvendt. Denne artikel illustrerer med eksempler funktionerne i CAST-operatoren i postgresql. Ved brug af denne operatør anvendes følgende syntaks:

1
CAST (expression AS target_type );

hvor udtrykket enten kan være en konstant, en tabelkolonne eller et udtryk, der evaluerer til en bestemt værdi. Target_type er den måldatatype, som vores udtryk vil resultere i efter konverteringen. en anden version af casting i postgresql indebærer brug af operatoren ::. Syntaksen i dette tilfælde er som følger:

1
Udtryk :: type

Lad os nu tage et par eksempler ved hjælp af CAST-operatoren.

Streng til heltal Casting

Når vi konverterer en streng til et heltal, bruger vi følgende udtryk

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

Denne illustration caster strengtypen “500” til et heltal af typen 500. En vigtig ting at huske er, at en vellykket konvertering finder sted, når måldatatypen er kompatibel med udtrykket. Ved hjælp af eksemplet ovenfor ville postgresql gennem en fejl i typeomdannelsen, når vi erstatter udtrykket “500” med “a500”, da de ikke er kompatible.

Postgres cast til boolean

Casting af udtryk til boolean konverterer dem til logiske datatyper. Nedenfor er et eksempel, der bruger CAST ( ) funktionen til at omdanne strings, char- og integers-udtryk til boolske datatyper.

1
2
3
4
5
6
7

SØG
CAST(‘1’ som BOOLEAN),
CAST(‘0’ som BOOLEAN);
CAST(‘true’ AS BOOLEAN),
CAST(‘false’ as BOOLEAN),
CAST(‘T’ as BOOLEAN),
CAST(‘F’ as BOOLEAN);

Postgresql cast timestamp to date

Vi får nøjagtig dato fra et bestemt timestamp ved at bruge Cast :: : operatoren med tidsstemplet som input og ved at tilføje ::date suffiks:

Syntaksen er som følger:

1
SELECT expression ::TIMESTAMP::DATE;

Tag et eksempel, når du ønsker at udtrække fra ‘2019-07-13 1:20:50′ til ‘2019-07-13’ Vores Cast forespørgsel ville være:

SELECT expression ::TIMESTAMP::DATE;

Tag et eksempel, når du ønsker at udtrække fra ‘2019-07-13 1:20:50′ til ‘2019-07-13’

1
SELECT ‘2019-07-13 1:20:50’::TIMESTAMP::DATE;

Postgresql cast dobbelt præcision til numerisk.

Dobbelt præcisionsudtryk tager flere decimaler i forhold til float-datatyper. I tilfælde af processorhukommelse kan dobbeltpræcisionstyperne optage op til 64 bit af hukommelsen. Når der konverteres fra dobbelt præcision, svarer det meget til at afrunde udtrykket. Casting bruges dog, når vi ønsker at få det nøjagtige resultat fra udtrykket. I eksemplet nedenfor bruger vi cast-operatoren :: sammen med Select-anvisningen for at illustrere konverteringen:

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

En alternativ måde at gøre det på er at bruge funktionen cast () som angivet nedenfor:

Syntaks :

SELECT CAST (Double precision AS numeric)

1
2

SELECT
CAST ( 33.135941093 AS numeric)

Postgresql Cast string til en dato

Det følgende eksempel illustrerer string casting til dato ved hjælp af sql-kommandoen SELECT:

1
2
3
SELECT
CAST (‘2019-07-14’ SOM DATO),
CAST (’13-JULY-2019′ SOM DATO);

I eksemplet konverterer vi først strengen ‘2019-07-14′ til 14. juli 2019, mens vi i anden del konverterer ’13-JULY-2019’ til 13. juli 2019.

Konklusion

Vi har vist dig flere teknikker til casting sammen med flere eksempler. Vi håber, at du har fundet et af disse eksempler nyttigt og er i stand til at anvende det, du har lært, på din specifikke applikation.

Hvis du har brug for hjælp til at opsætte eller administrere din PostgreSQL-database, så tøv ikke med at kontakte os hos Object Rocket for at drøfte detaljerne i dit projekt og afgøre, om vi kan hjælpe.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.