【问题标题】:Convert from 'float' to 'int'?从'float'转换为'int'?
【发布时间】:2014-03-18 07:24:13
【问题描述】:

我有一个包含超过 100 万条记录的表,在 2 列中,数据类型为 varchar(50) 我的值类似于 23.23。

我需要将数据/值转换为int。 比如 23.23 到 23 去掉浮点数。

我在这张表上没有主键。

【问题讨论】:

  • 请尝试给我正确的标题和 cmets 指示,您在标题中询问CONVERT。但你终于接受了ALTER 的答案,他们很困惑,看看他们的回答就像 (Saravanan, Raging Bull, Neels)...
  • 亲爱的 jmail,我的要求是转换,但 alter table 解决了我的问题。

标签: mysql int type-conversion


【解决方案1】:
ALTER TABLE t1 CHANGE <column_name> <column_name> <type> 

注意:你必须写两次列名 或

ALTER TABLE t1 MODIFY <column_name> <type> ;

Reference

【讨论】:

  • @jmail 我需要在 sqlfiddle 中演示什么
  • 如果他想要永久使用这些值,那么他需要改变,否则只需转换
【解决方案2】:

你可以使用FLOOR:

SELECT FLOOR(columnName) 
FROM TableName

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

阅读更多here。

要转换字段的数据类型:

ALTER TABLE TableName CHANGE columnName newColumnName targetFieldType;

【讨论】:

  • 我知道FLOOR,但是如何进行转换,有什么提示吗?
  • 是否要将字段的数据类型转换为int?
【解决方案3】:

试试这个:

SELECT ROUND(5.693893);

SELECT FLOOR(7.55);

【讨论】:

    【解决方案4】:

    您可以尝试将此字段转换为小数。

    SELECT CAST(field AS DECIMAL(10,0)) FROM table;

    【讨论】:

      【解决方案5】:

      我有同样的问题。我的表有一个类型为“float”的字段,我需要为“int”类型。

      感谢尼尔斯!

      因此,我必须首先将字段转换为 DECIMAL 类型,10,0(小数点后无值),然后将字段转换为长度为 11 的 INT。

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

      改变表track改变typetypeINT(11);

      【讨论】:

        【解决方案6】:
        ALTER TABLE tablename CHANGE columnname columnname INT
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多