cast(varchar_col AS int) -- SQL standard
или
varchar_col::int -- Postgres syntax shorthand
Тези варианти на синтаксис са валидни (почти) навсякъде . Вторият може да изисква влагане на скоби в специални ситуации:
- PostgreSQL:Създайте индекс за дължината на всички полета на таблицата
И първото може да се изисква, когато само функционална нотация е позволена от синтактични ограничения:
- PostgreSQL - CAST срещу ::оператор на LATERAL таблична функция
Има още два варианта:
int4(varchar_col) -- only works for some type names
int '123' -- must be an untyped, quoted string literal
Обърнете внимание как написах int4
(varchar_col)
. Това е вътрешното име на типа и има дефинирана и функция за него. Няма да работи като или integer()
.int()
Имайте предвид също, че последният формуляр не работи за масив видове. трябва да бъде int[] '{1,2,3}'
'{1,2,3}'::int[]
или cast('{1,2,3}' AS int[])
.
Подробности в ръководството тук итук .
Да е валидно за integer
, низът трябва да се състои от незадължителен водещ знак (+
/-
), последвано само от цифри. Началното/задното бяло пространство се игнорира.