日期:2014-05-17  浏览次数:20498 次

关于SQL查询中,数据类型转换的问题
 select sum(cast(JNJE as bigint)) from ZSMXB where AJNBBH='371702001000201310250000000008'

 我想查询ZSMXB这个表中JNJE的合。

  JEJE 是varchar类型的,但是全是数字,例如600.00。

  现在提示“从数据类型 varchar 转换为 bigint 时出错。”。

  想求教一下,怎么改呀?
SQL

------解决方案--------------------
bigint是整型  换成 decimal(10,2)
------解决方案--------------------
DECLARE @JNJE VARCHAR(50)
SET @JNJE='600.00'

SELECT CAST(REPLACE(@JNJE,'.','') AS BIGINT)/100

------解决方案--------------------
换成float也行
------解决方案--------------------
之所以会报错是因为,你的JNJE字段的值不一定是整数,而是有小数部分的,所以无法转化为整数。

改成这样试试:

select sum(cast(JNJE as numeric(20,3))) from ZSMXB where AJNBBH='371702001000201310250000000008'
------解决方案--------------------
convert(decimal(9,3),jnje)