将postgresql列从字符变换为整数

bk2*_*201 3 postgresql alter-table alter-column psql

我正在尝试将列类型从"字符变化(15)"更改为整数.

如果我从tableY limit(10)运行"=#SELECT columnX"; 我回来了:

columnX 
----------
34.00
12.00
7.75
18.50

4.00
11.25

18.00
16.50
Run Code Online (Sandbox Code Playgroud)

如果我运行"=#\ d + columnX"我会回来:

     Column     |         Type          |                           Modifiers                           | Storage  | Description 

columnX       | character varying(15) | not null                                                      | extended | 
Run Code Online (Sandbox Code Playgroud)

我已经搜索了高低,在po​​stgresql irc频道上询问,但没有人能弄清楚如何改变它,我试过:

ALTER TABLE race_horserecord ALTER COLUMN win_odds TYPE integer USING (win_odds::integer);
Run Code Online (Sandbox Code Playgroud)

也:

ALTER TABLE tableY ALTER COLUMN columnX TYPE integer USING (trim("columnX")::integer);
Run Code Online (Sandbox Code Playgroud)

每次我回来:

"错误:整数的输入语法无效:"34.00""


任何帮助,将不胜感激.

Don*_*oma 7

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

请注意,它将舍入您的小数值(例如,'7.75'::numeric::integer= 8).