pdqn.net
当前位置:首页 >> 转换成数据类型int时失败 >>

转换成数据类型int时失败

对的,要转换一次,将int转换为varchar,因为@strsql是字符串,你不能直接将字符串跟数值类型拼接在一起,举个简单的例子: --跟你set @strsql ='select * from ' + @mytable + ' where id=' + @myint是一个意思select 'aaa'+1这样就报跟你一样的错

你要写入的这条数据的各个值按顺序对应你的userinfo表的各个字段,你的第一个值p是字符串类型,和表字段user_id的类型不符,你应该把p改成数字.一般主键设置数字且自动递增的,你试着用null值去填充看是否添加数据成功,如不成功,改数字.

结果再用相同语句想把类型转回smallint就报错在将 varchar 值 '*' 转换成数据类型 int 时失败 注意:字符varchar转数据类型int 和数据类型int转字符vachar的语句是不同的.

我也试过强转,包括直接sql的cast转,遇到一些带小数点的确实没办法,但是部分带小数点的他就转过去了并且忽略小数点后位数.如果你这个值无需做运算,单纯的只要解决这个错误,那你直接输出算了.去掉rs前面的int 要是做运算,你replace掉小数点后位数算了.如果你要运算精确,数组取值,Array(0)+Array(1)*0.01算了

这个不是int类型,这个是date类型哦

"签收"是string 类型 是转不了 int 类型的 只有“123456”这样的才能转为int 你就想吧 文字怎么都变不了数字啊

你要是转为varchar应该是可以转回来的,但是你是将他转为了char类型,所以就转不回来了,因为char类型有个长度,不足这个长度的会用空格填充,所以一个数字多了很多个空格后就不是合法的数值格式了.

'2014-10-08'不是可直接转的数据,要把里面的非数字替换掉,如下:select cast(replace('2014-11-17','-','') as int)

<p>附图的3个截图分别是varchar、char、varchar</p> <p>第一步:varchar里存的是数字,转换为int没问题</p> <p>第二步:转换为char时,如果是char10,而数字位数不足10位,就会自动补空格.不出错的唯一情况就是所有的数字都是10位,存在char10里没有补空格</p> <p>第三步:又转换为varchar,但空格还在,转换int依然不行.看有没有空格,直接双击数字即可</p> <p> </p> <p></p>

附图的3个截图分别是varchar、char、varchar第一步:varchar里存的是数字,转换为int没问题第二步:转换为char时,如果是char10,而数字位数不足10位,就会自动补空格.不出错的唯一情况就是所有的数字都是10位,存在char10里没有补空格第三步:又转换为varchar,但空格还在,转换int依然不行.看有没有空格,直接双击数字即可

网站首页 | 网站地图
All rights reserved Powered by www.pdqn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com