不知道为什么此转换失败。SQL Server 2008 - 从字符串到int的转换失败
SELECT CAST('32.999' AS INT)
引发错误说转换VARCHAR值时'32 0.000' 到数据 int类型
转换失败。
我知道我可以将其转换为Decimal
,然后将其转换为Int
但为什么32.000没有被转化为Int
直接?
我在这里错过了什么吗?
- 编辑 -
我不关心小数点。我希望SQL忽略它们。
不知道为什么此转换失败。SQL Server 2008 - 从字符串到int的转换失败
SELECT CAST('32.999' AS INT)
引发错误说转换VARCHAR值时'32 0.000' 到数据 int类型
转换失败。
我知道我可以将其转换为Decimal
,然后将其转换为Int
但为什么32.000没有被转化为Int
直接?
我在这里错过了什么吗?
- 编辑 -
我不关心小数点。我希望SQL忽略它们。
32.000不能准确地表示为由于小数一个int。相反,如果你想要一个带有小数的数值,你可以使用浮点(或数字)数据类型。
Select CAST('32.000' as float)
编辑:误读你的问题一点点。
我假设SQL尝试,最好保持你的意图。当它读入你正试图施放的数值有十进制值时,它会拒绝它。
好点,但我不在乎小数点。我希望SQL忽略它们。 – Asdfg
如果您将'32 .000'转换为浮点数,则该值的显示将为'32'。它不会尝试显示.000 – Zhais
@Asdfg的十进制值,SQL不会让你忽略它们,除非你明确地告诉它这样做。一种方法是按照建议“CAST”。另一种方法是不要把它们放在首位。 –