Casting von Datentypen in Postgresql
Datenkonvertierung ist in allen Programmierparadigmen üblich, insbesondere bei der Handhabung von Transaktionen in Datenbanken. Wie in anderen Datenbanken gibt es auch in Postgresql CAST-Operationen, die eine Konvertierung von einem Datentyp in einen anderen ermöglichen. Es gibt verschiedene Cast-Operationen in Postgresql für die Umwandlung von String in Integer, Casting in Boolean, Casting von String in Datum und umgekehrt. Dieser Artikel veranschaulicht anhand von Beispielen die Funktionen des CAST-Operators in postgresql. Bei der Verwendung dieses Operators wird die folgende Syntax verwendet:
1
|
CAST (expression AS target_type );
|
wobei der Ausdruck entweder eine Konstante, eine Tabellenspalte oder ein Ausdruck sein kann, der auf einen bestimmten Wert ausgewertet wird. Der target_type ist der Zieldatentyp, zu dem unser Ausdruck nach der Konvertierung führt. Eine andere Version von casting in Postgresql beinhaltet die Verwendung des ::
-Operators. Die Syntax lautet in diesem Fall wie folgt:
1
|
Ausdruck :: Typ
|
Lassen Sie uns nun ein paar Beispiele mit dem CAST-Operator betrachten.
String to integer Casting
Wenn wir einen String in eine ganze Zahl umwandeln, verwenden wir den folgenden Ausdruck
1
2 |
SELECT
CAST (‚500‘ AS INTEGER); |
Diese Abbildung castet den String-Typ „500“ in einen Integer-Typ 500. Ein wichtiger Punkt ist, dass eine erfolgreiche Konvertierung erfolgt, wenn der Zieldatentyp mit dem Ausdruck kompatibel ist. Im obigen Beispiel würde Postgresql einen Typkonvertierungsfehler ausgeben, wenn wir den Ausdruck „500“ durch „a500“ ersetzen, da sie nicht kompatibel sind.
Postgres cast to Boolean
Das Casting von Ausdrücken in Boolean konvertiert sie in logische Datentypen. Im folgenden Beispiel wird die Funktion CAST ( ) verwendet, um Ausdrücke wie Strings, Char und Integers in boolesche Datentypen umzuwandeln.
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
Wir erhalten das genaue Datum aus einem bestimmten Zeitstempel, indem wir den Cast :: Operator mit dem Zeitstempel als Eingabe und dem Suffix ::date:
Die Syntax lautet wie folgt:
1
|
SELECT expression ::TIMESTAMP::DATE;
|
Angenommen, Sie möchten von ‚2019-07-13 1:20:50′ bis ‚2019-07-13‘ extrahieren Unsere Cast-Abfrage würde lauten:
1
|
SELECT ‚2019-07-13 1:20:50‘::TIMESTAMP::DATE;
|
Postgresql cast double precision to numeric.
Doppelpräzisionsausdrücke benötigen mehr Dezimalstellen im Vergleich zu Float-Datentypen. Im Falle des Prozessorspeichers können die Double-Precision-Typen bis zu 64 Bit Speicherplatz belegen. Bei der Konvertierung von Double Precision ist es ganz ähnlich wie beim Runden des Ausdrucks. Das Casting wird jedoch verwendet, wenn wir das genaue Ergebnis des Ausdrucks erhalten wollen. Im folgenden Beispiel wird der Cast-Operator ::
zusammen mit der Select-Anweisung verwendet, um die Konvertierung zu veranschaulichen.
Syntax : SELECT (Double precision :: numeric);SELECT (33.135941093 :: numeric);
Eine alternative Möglichkeit ist die Verwendung der Funktion cast (), wie unten angegeben:
Syntax :
SELECT CAST (Double precision AS numeric)
1
2 |
SELECT
CAST ( 33.135941093 AS numeric) |
Postgresql Cast string to a date
Das folgende Beispiel veranschaulicht das Casting eines Strings in ein Datum mit dem Sql-Befehl SELECT:
1
2 3 |
SELECT
CAST (‚2019-07-14‘ ALS DATUM), CAST (’13-JULY-2019′ ALS DATUM); |
Im Beispiel konvertieren wir zunächst die Zeichenfolge ‚2019-07-14′ in den 14. Juli 2019, während wir im zweiten Teil ’13-JULY-2019‘ in den 13. Juli 2019 konvertieren.
Abschluss
Wir haben dir verschiedene Techniken des Castings zusammen mit einigen Beispielen gezeigt. Wir hoffen, dass Sie eines dieser Beispiele nützlich fanden und das Gelernte auf Ihre spezifische Anwendung anwenden können.
Wenn Sie Hilfe beim Einrichten oder Verwalten Ihrer PostgreSQL-Datenbank benötigen, zögern Sie nicht, sich mit uns bei Object Rocket in Verbindung zu setzen, um die Details Ihres Projekts zu besprechen und festzustellen, ob wir Ihnen helfen können.