SQL表单提示"从数据类型varchar转换为int时出错"

SQL表单提示"从数据类型varchar转换为int时出错"

var sql = " select a.youxq "
+ " from spkc a (nolock) "
+ " where a.youxq between 0 and 24 "
已知spkc表中的youxq字段为varchar(10)型,且表中此字段的值有带小数的,如"1.5"
试过将a.youxq改为cast(a.youxq as int)或convert(int,convert(numeric(18,9),a.youxq)),均提示同类错误,求语句如何改。

1、varchar是字符串类型,而int是数字整型。varchar类型可以存储任意字符,而int只能存储数字整型所以会报错;
2、你可以将int类型转换为varchar类型,因为varchar可以存储任意的字符;例如:123(一百二十三)位int类型,当你将123转为varchar类型之后就变成了123(一二三)。如果你讲ABC varchar类型转换为ABC int类型时是无法转换的;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-09
字段的值有带小数,肯定不能as int ,改成cast(a.youxq as float)就可以了
第2个回答  推荐于2017-09-22
 var sql = " select a.youxq "

            + " from spkc a (nolock) "

            + " where  cast(a.youxq as float) * 100 between 0 and 240 "

追问

试过了,提示"从数据类型varchar转换为float时出错"

追答

那你的列数据还是有非数字字符类型数据存在,你好好看看
你不可能 cast ‘aaa’ 为数字的

本回答被提问者采纳
第3个回答  2014-08-09
between 0.0 and 24.0看看追问

试过了,提示"错误原因:Data truncation"

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网