Sta*_*ton 9 sql sql-server number-formatting
我在一个varchar(255)字段中有一个数字表.它们都大于一个并且有多个小数位.我想将它们转换为整数.根据我咨询过的每个网站,包括StackOverflow上的这个网站,其中任何一个都可以工作:
SELECT CAST(VarcharCol AS INT) FROM MyTable
SELECT CONVERT(INT, VarcharCol) FROM MyTable
Run Code Online (Sandbox Code Playgroud)
这些都为我工作,为每一种数值,但integer-我可以转换成float,decimal等得很好,但试图转换到integer给了我下面的错误:
Conversion failed when converting the varchar value '7082.7758172'
to data type int.
Run Code Online (Sandbox Code Playgroud)
我通过转换为数据类型解决了这个问题Decimal(6,0),这种方法很好.但只是为了我的教育,任何人都可以告诉我为什么转换为数据类型int(或integer)给我一个错误?谢谢.
Max*_*non 16
当小数点右边有数字时,将VARCHAR值转换为INT会失败,以防止丢失数据.
如果先转换为FLOAT,然后转换为INT,则转换有效.
SELECT CAST(CAST('7082.7758172' as float) as int)
Run Code Online (Sandbox Code Playgroud)
回报
7082
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
162394 次 |
| 最近记录: |