cast(varchar_col AS int) -- SQL standard lub
varchar_col::int -- Postgres syntax shorthand Te warianty składni są prawidłowe (prawie) wszędzie . Drugi może wymagać zagnieżdżenia nawiasów w szczególnych sytuacjach:
- PostgreSQL:Utwórz indeks na podstawie długości wszystkich pól tabeli
A pierwszy może być wymagany, gdy tylko funkcjonalna notacja jest dozwolona przez ograniczenia składni:
- PostgreSQL — operator CAST vs ::w funkcji tabeli BOCZNEJ
Istnieją jeszcze dwa warianty:
int4(varchar_col) -- only works for some type names
int '123' -- must be an untyped, quoted string literal
Zwróć uwagę, jak napisałem int4 (varchar_col) . To jest nazwa typu wewnętrznego i jest też dla niego zdefiniowana funkcja. Nie działa jako lub integer() .int()
Zwróć też uwagę, że ostatnia forma nie działa dla tablicy typy. musi być int[] '{1,2,3}' '{1,2,3}'::int[] lub cast('{1,2,3}' AS int[]) .
Szczegóły w instrukcji tutaj i tutaj .
Aby być prawidłowym dla integer , ciąg musi składać się z opcjonalnego znaku wiodącego (+ /- ), po których następują tylko cyfry. Początkowe/końcowe białe znaki są ignorowane.