从'float'类型转换为'int'类型?

5

我有一个表格,其中包含超过100万条记录,在两个数据类型为varchar(50)的列中,我有像23.23这样的值。

我需要将数据/值转换为int

例如,通过删除浮点数,将23.23转换为23。

该表上没有主键。


1
请尝试为标题和注释提供正确的指示,您在标题中要求“CONVERT”,但最终接受了“ALTER”的答案,这让人感到困惑,请查看他们的答案,例如(Saravanan、Raging Bull、Neels)... - jmail
亲爱的 jmail,我的需求是转换,但 alter table 解决了我的问题。 - Muhammad
6个回答

5
ALTER TABLE t1 CHANGE <column_name> <column_name> <type> 

注意: 您必须将列名写两次 OR

ALTER TABLE t1 MODIFY <column_name> <type> ;

参考资料


@jmail 我需要在sqlfiddle上进行演示,需要准备什么? - Vignesh Kumar A
如果他想永久保存这些值,那么他需要进行更改,否则只需转换即可。 - Vignesh Kumar A

4
你可以使用 FLOOR
SELECT FLOOR(columnName) 
FROM TableName

Floor 返回不大于 X 的最大整数值。

在这里阅读更多详细信息

要转换字段的数据类型:

ALTER TABLE TableName CHANGE columnName newColumnName targetFieldType;

我知道FLOOR函数,但如何进行转换呢?有什么提示吗? - Muhammad
1
你想将该字段的数据类型转换为整型吗? - Raging Bull

2

试试这个:

SELECT ROUND(5.693893);

SELECT FLOOR(7.55);

1
你可以尝试将该字段转换为十进制数。 SELECT CAST(field AS DECIMAL(10,0)) FROM table;

0

我也遇到了同样的问题。我的表有一个字段是'float'类型,但我需要它是'int'类型。

感谢Neels!

所以,我首先将该字段转换为DECIMAL类型,长度为10,0(小数点后没有值),然后再将该字段转换为长度为11的INT类型。

ALTER TABLE track CHANGE type type DECIMAL(10,0);

ALTER TABLE track CHANGE type type INT(11);


-1
ALTER TABLE tablename CHANGE columnname columnname INT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接