查询的语句为:
SELECT count(*) FROM baxt_lasp WHERE lrrq >= '2017-04-01' AND lrrq <= '2017-04-06' AND bde<= cast('10000' as bigint)
但是执行这个语句的时候,一直出现报错:从数据类型 varchar 转换为 bigint 时出错。
分析数据库中的数据:
发现数据中中,dbe的字段类型是varchar(50)
但是数据中dbe这个字段的数据大部分都是类似111.23类型的,并不是int型的数据,所以导致无法比较而导致出错。
解决办法:
SELECT count(*) FROM baxt_lasp WHERE lrrq >= '2017-04-01' AND lrrq <= '2017-04-06' AND bde<= cast('10000' as decimal)
将bigint修改为decimal既可以解决比较时候出现的问题,又可以解决报错的问题。