将postgresql列从字符变换为整数

时间:2013-04-10 03:20:44

标签: postgresql alter-table psql alter-column

我正在尝试将列类型从“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 | 

我搜索了高低,在po​​stgresql 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“”


任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:7)

试试USING (win_odds::numeric::integer)

请注意,它会对小数值进行舍入(例如,'7.75'::numeric::integer = 8)。