删除/转换数字以在mysql中作为FLOAT处理

时间:2017-01-09 11:29:49

标签: mysql excel

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

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

目前我通过将列定义为VARCHAR并然后导入它(然后条目是正确的)来绕过问题:但是查询是什么我可以将数字更改为正确的形式并更改格式从FLOATUPDATE Table1 SET cash = FORMAT(cash, 2, 'de_DE'); ALTER TABLE Table1 MODIFY COLUMN cash FLOAT; 的列?

已经尝试过,但它无法正常工作:

{{1}}

感谢您的支持!

1 个答案:

答案 0 :(得分:0)

假设您的列包含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,具体取决于所需的精度。