PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Umwandlung des Postgres-Datentyps

cast(varchar_col AS int)  -- SQL standard

oder

varchar_col::int          -- Postgres syntax shorthand

Diese Syntaxvarianten sind (fast) überall gültig . Die zweite kann in besonderen Situationen verschachtelte Klammern erfordern:

  • PostgreSQL:Index auf Länge aller Tabellenfelder erstellen

Und die erste kann erforderlich sein, wenn nur funktionale Schreibweise durch Syntaxbeschränkungen erlaubt ist:

  • PostgreSQL - CAST vs ::Operator für LATERAL-Tabellenfunktion

Es gibt zwei weitere Varianten:

int4(varchar_col)         -- only works for some type names
int '123'                 -- must be an untyped, quoted string literal

Beachten Sie, wie ich int4 geschrieben habe (varchar_col) . Das ist der interne Typname und es ist auch eine Funktion dafür definiert. Funktioniert nicht als integer() oder int() .

Beachten Sie auch, dass die letzte Form nicht für array funktioniert Typen. int[] '{1,2,3}' muss '{1,2,3}'::int[] sein oder cast('{1,2,3}' AS int[]) .

Details im Handbuch hier und hier .

Gültig für integer , muss die Zeichenfolge aus einem optionalen führenden Zeichen bestehen (+ /- ) nur gefolgt von Ziffern. Führende/nachgestellte Leerzeichen werden ignoriert.