我正在尝试将列类型从“character varying(15)”更改为整数。
如果我从tableY limit(10)运行“=#SELECT columnX”;我回来了:
columnX
----------
34.00
12.00
7.75
18.50
4.00
11.25
18.00
16.50
如果我运行“=#\ d + columnX”,我会回来:
Column | Type | Modifiers | Storage | Description
columnX | character varying(15) | not null | extended |
我搜索了高低,在postgresql irc频道上询问,但没有人能弄清楚如何改变它,我试过了:
ALTER TABLE race_horserecord ALTER COLUMN win_odds TYPE integer USING (win_odds::integer);
此外:
ALTER TABLE tableY ALTER COLUMN columnX TYPE integer USING (trim("columnX")::integer);
每次我回来时:
“错误:整数的输入语法无效:”34.00“”
任何帮助都将不胜感激。
答案 0 :(得分:7)
试试USING (win_odds::numeric::integer)
。
请注意,它会对小数值进行舍入(例如,'7.75'::numeric::integer
= 8
)。