【问题标题】:Getting an error when casting float to decimal将浮点数转换为十进制时出错
【发布时间】:2018-03-26 02:55:05
【问题描述】:

将数据从 flost 移动到十进制 (5,2)。我可以在现有数据中找到的最大值是 94.23,但是当我尝试转换为十进制时它会抛出错误。

Arithmetic overflow error converting float to data type numeric.

我尝试直接复制而不进行转换,得到了那个错误。所以我先尝试投射:

     CAST(Purity as decimal(5,2))

同样的错误。

我注意到那里也有空值,所以我尝试了:

ISNULL(CAST(Purity as decimal(5,2)),0)

同样的错误。

【问题讨论】:

    标签: sql sql-server tsql sqldatatypes data-conversion


    【解决方案1】:

    您是否在数据库中查找最大值?

    select max(Purity)
    from t;
    

    而且,如果 Purity 真的是一个字符串,您可能还有其他事情发生。所以,你可以试试:

    select max(convert(purity, 18, 6))  -- or something like this
    from t;
    

    【讨论】:

    • select max() 发现值 9845(无小数)所以这是我的问题。谢谢。
    猜你喜欢
    • 2016-02-24
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-24
    • 2010-12-08
    • 2016-06-02
    • 1970-01-01
    相关资源
    最近更新 更多