Casting in PostgreSQL

Casting datatypes in Postgresql

Dataconversie is gebruikelijk in alle programmeerparadigma’s, vooral bij het verwerken van transacties in de databases. Net als in andere databases biedt postgresql database CAST operaties waarmee een gegevenstype in een ander kan worden geconverteerd. Er zijn verschillende cast operaties in postgresql voor het omzetten van string naar integers, casting naar Boolean, casting string naar datum en vice versa. Dit artikel illustreert met voorbeelden de functies van CAST operator in postgresql. Bij het gebruik van deze operator wordt de volgende syntaxis gebruikt:

1
CAST (expression AS target_type );

waarbij de expressie ofwel een constante, een tabelkolom of een expressie kan zijn die op een specifieke waarde evalueert. Een andere versie van casting in postgresql omvat het gebruik van de :: operator. De syntaxis in dit geval is als volgt:

1
Expressie :: type

Laten we nu een paar voorbeelden nemen waarbij de CAST-operator wordt gebruikt.

String naar geheel getal Casting

Bij het omzetten van een string in een geheel getal, gebruiken we de volgende uitdrukking

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

In deze illustratie wordt het tekenreekstype “500” geconverteerd naar een geheel getal van het type 500. Een belangrijk ding om te onthouden is dat een conversie succesvol is wanneer het doelgegevenstype compatibel is met de expressie. In het bovenstaande voorbeeld zou postgresql een type-conversiefout maken wanneer we de uitdrukking “500” vervangen door “a500”, omdat ze niet compatibel zijn.

Postgres cast to Boolean

Het casten van uitdrukkingen naar Boolean converteert ze naar logische gegevenstypen. Hieronder staat een voorbeeld waarin de functie CAST ( ) wordt gebruikt om expressies van tekenreeksen, char en gehele getallen om te zetten in Booleaanse gegevenstypen.

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

Postgresql cast tijdstempel naar datum

We verkrijgen de exacte datum uit een specifiek tijdstempel door gebruik te maken van de Cast :: operator met de timestamp als invoer en toevoeging van ::date achtervoegsel:

De syntaxis is als volgt:

1
SELECT expression ::TIMESTAMP::DATE;

Neem een voorbeeld wanneer u wilt extraheren van ‘2019-07-13 1:20:50′ naar ‘2019-07-13’ Onze Cast query zou zijn:

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

Postgresql cast dubbele precisie naar numeriek.

Een uitdrukking met dubbele precisie neemt meer decimale punten in beslag in vergelijking met het gegevenstype float. In het geval van processorgeheugen, kunnen de dubbele precisie types tot 64 bit geheugen innemen. Bij het omzetten van dubbele precisie, is het vergelijkbaar met het afronden van de uitdrukking. Echter, casting wordt gebruikt wanneer we een nauwkeurig resultaat van de uitdrukking willen verkrijgen. In het onderstaande voorbeeld gebruiken we de cast-operator :: samen met het Select statement om de conversie te illustreren.

Syntaxis : SELECT (Dubbele precisie :: numeriek);SELECT (33,135941093 :: numeriek);

Een alternatieve manier is het gebruik van de cast ()-functie, zoals hieronder aangegeven:

Syntax :

SELECT CAST (Dubbele precisie AS numeriek)

1
2
SELECT
CAST ( 33.135941093 AS numeric)

Postgresql Cast string to a date

Het volgende voorbeeld illustreert string casting naar datum met behulp van de sql-opdracht SELECT:

1
2
3
SELECT
CAST (‘2019-07-14’ ALS DATUM),
CAST (’13-JULI-2019′ ALS DATUM);

In het voorbeeld zetten we eerst de string ‘2019-07-14′ om in 14 juli 2019, terwijl we in het tweede deel ’13-juli-2019’ omzetten in 13 juli 2019.

Conclusie

We hebben u verschillende technieken van casting laten zien, samen met verschillende voorbeelden. We hopen dat u een van deze voorbeelden nuttig hebt gevonden en dat u in staat bent om wat u hebt geleerd toe te passen op uw specifieke toepassing.

Als u hulp nodig hebt bij het opzetten of beheren van uw PostgreSQL database, aarzel dan niet om contact met ons op te nemen bij Object Rocket om de details van uw project te bespreken en te bepalen of we kunnen helpen.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.