cast(varchar_col AS int) -- SQL standard
eller
varchar_col::int -- Postgres syntax shorthand
Disse syntaksvarianter er gyldige (næsten) hvor som helst . Den anden kan kræve indlejrede parenteser i særlige situationer:
- PostgreSQL:Opret indeks over længden af alle tabelfelter
Og den første kan være påkrævet, hvor kun funktionel notation er tilladt af syntaksbegrænsninger:
- PostgreSQL - CAST vs ::operator på LATERAL tabelfunktion
Der er yderligere to varianter:
int4(varchar_col) -- only works for some type names
int '123' -- must be an untyped, quoted string literal
Bemærk, hvordan jeg skrev int4
(varchar_col)
. Det er det interne typenavn, og der er også defineret en funktion til det. Ville ikke fungere som eller integer()
.int()
Bemærk også, at den sidste formular ikke virker for array typer. skal være int[] '{1,2,3}'
'{1,2,3}'::int[]
eller cast('{1,2,3}' AS int[])
.
Detaljer i manualen her og her .
Skal være gyldig for heltal
, skal strengen bestå af et valgfrit indledende tegn (+
/- ) kun efterfulgt af cifre. Førende/efterstillede mellemrum ignoreres.