cast(varchar_col AS int) -- SQL standard
atau
varchar_col::int -- Postgres syntax shorthand
Varian sintaks ini valid (hampir) di mana saja . Yang kedua mungkin memerlukan tanda kurung bersarang dalam situasi khusus:
- PostgreSQL:Buat indeks pada panjang semua bidang tabel
Dan yang pertama mungkin diperlukan di mana hanya notasi fungsional yang diizinkan oleh batasan sintaks:
- PostgreSQL - CAST vs ::operator pada fungsi tabel LATERAL
Ada dua varian lagi:
int4(varchar_col) -- only works for some type names
int '123' -- must be an untyped, quoted string literal
Perhatikan bagaimana saya menulis int4
(varchar_col)
. Itu nama tipe internal dan ada juga fungsi yang ditentukan untuk itu. Tidak akan berfungsi sebagai atau integer()
.int()
Perhatikan juga bahwa formulir terakhir tidak berfungsi untuk array jenis. harus int[] '{1,2,3}'
'{1,2,3}'::int[]
atau cast('{1,2,3}' AS int[])
.
Detail dalam manual di sini dan di sini .
Agar valid untuk integer
, string harus terdiri dari tanda depan opsional (+
/-
) diikuti oleh angka saja. Spasi di awal / akhir diabaikan.