我在varchar(255)字段中有一个带有数字的表.它们都大于一个并且有多个小数位.我想将它们转换为整数.根据我咨询的每个网站,包括
this one on StackOverflow,其中任何一个应该工作:
SELECT CAST(VarcharCol AS INT) FROM MyTable SELECT CONVERT(INT,VarcharCol) FROM MyTable
这些都适用于我的各种数值但整数 – 我可以转换为浮点数,十进制等等就好了,但试图转换为整数给我以下错误:
Conversion Failed when converting the varchar value '7082.7758172' to data type int.
我通过转换为数据类型Decimal(6,0)解决了这个问题,这很好.但只是为了我的教育,谁能告诉我为什么转换为数据类型int(或整数)给我一个错误?谢谢.
解决方法
当小数点右边有数字时,将VARCHAR值转换为INT会失败,以防止丢失数据.
如果先转换为FLOAT,然后转换为INT,则转换有效.
SELECT CAST(CAST('7082.7758172' as float) as int)
回报
7082
原文地址:https://www.jb51.cc/mssql/77703.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。