在 SQL SERVER 2000 表中,有一列名为 Kpi 的 float 类型
。
当尝试将该列转换为 varchar(cast(kpi as varchar(3)))
时,会出现错误
Msg 232, Level 16, State 2, Line 1
Arithmetic overflow error for type varchar, value = 26.100000.
问题是该列只有一个不同的值,即 26.1。 我不明白为什么在将其转换为 varchar 时显示错误!
最佳答案
您的错误是由 26.1 中的句号触发的。
您已应用此命令:
cast(kpi as varchar(3))
首先:将转换从 varchar(3) 更改为 varchar(4)(以获取句号后的第一个值)
所以你会得到:
此行将值 26.10000000 转换为 26.1
那么你应用的varchar(26.1)
不正确!
Varchar 类型只需要整数值作为大小。
为什么应用最后一个 varchar?我认为你必须删除外部 varchar 并只保留强制转换函数
关于sql - Sql Server 2000 中类型的算术溢出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22296974/