cast(varchar_col AS int) -- SQL standard
hoặc
varchar_col::int -- Postgres syntax shorthand
Các biến thể cú pháp của luận án này hợp lệ (hầu như) ở bất kỳ đâu . Điều thứ hai có thể yêu cầu dấu ngoặc đơn lồng vào nhau trong các tình huống đặc biệt:
- PostgreSQL:Tạo chỉ mục theo độ dài của tất cả các trường trong bảng
Và điều đầu tiên có thể được yêu cầu khi chỉ có ký hiệu chức năng được cho phép bởi các hạn chế về cú pháp:
- PostgreSQL - toán tử CAST so với ::trên hàm bảng LATERAL
Có hai biến thể khác:
int4(varchar_col) -- only works for some type names
int '123' -- must be an untyped, quoted string literal
Lưu ý cách tôi đã viết int4
(varchar_col)
. Đó là tên kiểu nội bộ và cũng có một hàm được định nghĩa cho nó. Sẽ không hoạt động dưới dạng hoặc integer()
. int()
Cũng lưu ý rằng biểu mẫu cuối cùng không hoạt động cho mảng các loại. phải là int[] '{1,2,3}'
'{1,2,3}'::int[]
hoặc cast('{1,2,3}' AS int[])
.
Thông tin chi tiết trong sách hướng dẫn tại đây và tại đây .
Hợp lệ cho integer
, chuỗi phải bao gồm một dấu hiệu đứng đầu tùy chọn (+
/ -
) chỉ theo sau là các chữ số. Khoảng trắng ở đầu / cuối bị bỏ qua.