加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

tSQL – 从varchar到numeric的转换适用于除整数之外的所有内容

发布时间:2020-12-12 06:48:24 所属栏目:MsSql教程 来源:网络整理
导读:我在varchar(255)字段中有一个带有数字的表.它们都大于一个并且有多个小数位.我想将它们转换为整数.根据我咨询的每个网站,包括 this one on StackOverflow,其中任何一个应该工作: SELECT CAST(VarcharCol AS INT) FROM MyTableSELECT CONVERT(INT,VarcharCol
我在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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读