PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Conversion du type de données Postgres

cast(varchar_col AS int)  -- SQL standard

ou

varchar_col::int          -- Postgres syntax shorthand

Ces variantes de syntaxe sont valides (presque) partout . La seconde peut nécessiter l'imbrication de parenthèses dans des situations particulières :

  • PostgreSQL :Créer un index sur la longueur de tous les champs de la table

Et la première peut être requise là où seule la notation fonctionnelle est autorisée par des restrictions de syntaxe :

  • PostgreSQL - Opérateur CAST vs ::sur la fonction de table LATERAL

Il existe deux autres variantes :

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

Notez comment j'ai écrit int4 (varchar_col) . C'est le nom du type interne et une fonction est également définie pour lui. Ne fonctionnerait pas comme integer() ou int() .

Notez également que le dernier formulaire ne fonctionne pas pour array les types. int[] '{1,2,3}' doit être '{1,2,3}'::int[] ou cast('{1,2,3}' AS int[]) .

Détails dans le manuel ici et ici .

Être valide pour integer , la chaîne doit être composée d'un premier signe facultatif (+ /- ) suivi de chiffres uniquement. Les espaces blancs de début/de fin sont ignorés.