无法将 varchar(255) 转换为浮动

Can't cast varchar(255) to float

我正在尝试将列类型更改为浮动或创建一个新列并复制旧列的内容,但无论哪种情况我都得到:

invalid input syntax for type numeric: "10:59"

我试过了

ALTER TABLE videos ALTER COLUMN length TYPE numeric(10,2) USING CAST(length AS numeric(10,2));

我也试过只选择浮点值

select length::numeric(10,2) from videos;

但我得到了同样的错误。这是列描述

另外我在做的时候

select '10.59'::numeric(10,2), length from videos;

它returns

numeric length
10.59   10:59

您的值无效。 "10:59" 无法转换为 fload。

SELECT '10:59'::float
-- ERROR:  invalid input syntax for type double precision: "10:59"

请注意您的字符串值包含分号:10:59 != 10.59.

您需要在更改 table 之前更新该值。