我的数据库是Postgres 8.我需要将数据类型转换为另一个。这意味着,其中一列数据类型为varchar
,需要使用int
声明中的Postgres将其强制转换为SELECT
。
目前,我获取字符串值并将其转换为Java中的int
有什么办法吗?示例代码将受到高度赞赏。
答案 0 :(得分:47)
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()
另请注意,最后一个表单不适用于数组类型。 必须为int[] '{1,2,3}'
'{1,2,3}'::int[]
或cast('{1,2,3}' AS int[])
。
要对integer
有效,字符串必须包含可选的前导符号(+
/ -
),后跟数字。前导/尾随空格被忽略。