我有数千个分隔符和逗号(导出为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
来存储货币选项,而不要使用精确的数据类型。根据所需的精度,该值为DECIMAL
或INTEGER
。