我的数据库是 Postgres 8。我需要将数据类型转换为另一个。这意味着,其中一种列数据类型是varchar
并且需要在语句int
中使用 Postgres将其转换为。SELECT
目前,我获取字符串值并将其转换int
为 Java。
有什么办法吗?示例代码将不胜感激。
我的数据库是 Postgres 8。我需要将数据类型转换为另一个。这意味着,其中一种列数据类型是varchar
并且需要在语句int
中使用 Postgres将其转换为。SELECT
目前,我获取字符串值并将其转换int
为 Java。
有什么办法吗?示例代码将不胜感激。
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
注意我是怎么写的。那是内部类型名称,并且还为它定义了一个函数。不能用作or 。int4
(varchar_col)
integer()
int()
另请注意,最后一种形式不适用于数组类型。必须是int[] '{1,2,3}'
'{1,2,3}'::int[]
or cast('{1,2,3}' AS int[])
。
要对 有效integer
,字符串必须由可选的前导符号 ( +
/ -
) 后跟数字组成。前导/尾随空格被忽略。