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 ou integer()
.int()
Notez également que le dernier formulaire ne fonctionne pas pour array les types. doit être int[] '{1,2,3}'
'{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.