cast(varchar_col AS int) -- SQL standard
または
varchar_col::int -- Postgres syntax shorthand
これらの構文バリアントは、(ほぼ)どこでも有効です。 。 2つ目は、特別な状況で括弧をネストする必要がある場合があります:
- PostgreSQL:すべてのテーブルフィールドの長さのインデックスを作成します
また、構文制限によって機能表記のみが許可されている場合は、最初のものが必要になる場合があります。
- PostgreSQL-LATERALテーブル関数のCASTと::演算子
さらに2つのバリエーションがあります:
int4(varchar_col) -- only works for some type names
int '123' -- must be an untyped, quoted string literal
int4
の書き方に注意してください (varchar_col)
。これは内部型名であり、それに定義された関数もあります。 または integer()
としては機能しません 。int()
最後の形式はarrayでは機能しないことにも注意してください タイプ。 int []'{1,2,3}'
'{1,2,3}' ::int []
である必要があります またはcast('{1,2,3}' AS int [])
。
マニュアルの詳細はこちら およびここ 。
integer
に対して有効であるため 、文字列はオプションの先頭記号( +
)で構成されている必要があります /-コード> )の後に数字のみが続きます。先頭/末尾の空白は無視されます。