Ответ 1
cast(varchar_col AS int) -- SQL standard
или
varchar_col::int -- Postgres syntax shorthand
Синтаксические варианты тезисов действительны (почти) в любом месте. Исключение для второго:
Есть еще два варианта:
int4(varchar_col) -- only works for some type names
int '123' -- must be an untyped, quoted string literal
Обратите внимание, как я написал int4
(varchar_col)
. Это имя внутреннего типа, а также функция, определенная для него. Не работает как или integer()
.int()
Подробности в руководстве здесь и здесь.
Чтобы быть действительным для integer
, строка должна содержать необязательный главный знак (+
/-
), за которым следует только цифры. Ведущее/конечное пустое пространство игнорируется.