Asd*_*dfg 3 t-sql sql-server casting sql-server-2008
不知道为什么这种转换失败了.
SELECT CAST('32.999' AS INT)
Run Code Online (Sandbox Code Playgroud)
抛出错误说
将varchar值'32 .000'转换为数据类型int时转换失败.
我知道我可以将它转换为Decimal然后将其转换为Int但为什么32.000没有被Int直接转换?
我在这里错过了什么吗?
- 编辑 -
我不关心小数点.我希望SQL忽略它们.
由于小数位数,32.000无法准确表示为int.相反,如果您想要一个带小数的数字值,您可以使用浮点(或数字)数据类型.
Select CAST('32.000' as float)
Run Code Online (Sandbox Code Playgroud)
编辑:误读了你的问题.
我假设SQL正在尝试保留你的意图.当它读入您尝试投射的数值具有十进制值时,它会平坦地拒绝它.