我有数千个分隔符和逗号(导出为Excel csv)的数字,我想将其插入到FLOAT的表(更确切地说是列)中。现在的问题是数字输入方式不正确。

例如,Excel文件中的数字(列名称为cash)为14.142,99,表中的条目(FLOAT列名称也为cash)为14.142

目前,我通过将列定义为VARCHAR并将其导入(然后输入正确)来绕过问题:但是什么是查询,我可以将数字更改为正确的形式并从VARCHAR更改列的格式到FLOAT

已经尝试过了,但是不能正常工作:

UPDATE Table1
SET cash = FORMAT(cash, 2, 'de_DE');

ALTER TABLE Table1
    MODIFY COLUMN cash FLOAT;


谢谢你的支持!

最佳答案

假设您的栏包含de_DE格式的数字,即14.142,99并且您的预期值为14142.99,那么我建议以下内容

UPDATE Table1
    SET cash = REPLACE( REPLACE( cash , '.' , '' ) , ',' , '.' );

ALTER TABLE Table1 MODIFY COLUMN cash DECIMAL( 10 , 2 );


根据我的评论,我建议不要使用FLOAT来存储货币选项,而不要使用精确的数据类型。根据所需的精度,该值为DECIMALINTEGER

10-06 09:11