cast(varchar_col AS int) -- SQL standard
of
varchar_col::int -- Postgres syntax shorthand
Deze syntaxisvarianten zijn (bijna) overal geldig . De tweede kan in speciale situaties nesten van haakjes vereisen:
- PostgreSQL:maak een index op lengte van alle tabelvelden
En de eerste kan nodig zijn waar alleen functionele notatie is toegestaan door syntaxisbeperkingen:
- PostgreSQL - CAST vs ::operator op LATERAL tabelfunctie
Er zijn nog twee varianten:
int4(varchar_col) -- only works for some type names
int '123' -- must be an untyped, quoted string literal
Merk op hoe ik int4
. schreef (varchar_col)
. Dat is de interne typenaam en er is ook een functie voor gedefinieerd. Zou niet werken als of integer()
.int()
Merk ook op dat het laatste formulier niet werkt voor array soorten. moet int[] '{1,2,3}'
'{1,2,3}'::int[]
. zijn of cast('{1,2,3}' AS int[])
.
Details in de handleiding hier en hier .
Geldig voor integer
, moet de tekenreeks bestaan uit een optioneel hoofdteken (+
/-
) alleen gevolgd door cijfers. Voorloop/achtervolging witruimte wordt genegeerd.