数据类型转换

时间:2012-03-24 17:26:28

标签: sql sql-server

我正在尝试执行以下查询

select distinct pincode as Pincode,CAST(Date_val as DATE) as Date,
SUM(cast(megh_38 as int)) as 'Postage Realized in Cash',
SUM(cast(megh_39 as int)) as 'MO Commission',
from dbo.arrow_dtp_upg
group by pincode,Date_Val

但是我收到错误“将nvarchar值'82 .25'转换为数据类型int时转换失败。”

我使用了错误的数据类型吗?

3 个答案:

答案 0 :(得分:1)

字符串“82.25”表示浮点(或小数)而不是int,因此如果需要浮点数,请使用cast(megh_38 as float)

如果只需要整数部分,请使用floor(cast(megh_38 as float))

答案 1 :(得分:0)

你可以试试这个:

cast(megh_38 as decimal(10,2))
cast(megh_39 as decimal(10,2))

答案 2 :(得分:0)

一个可能的问题是分隔符(点对逗号)。 问题 - 为什么你更喜欢nvarchar存储浮点数或int值?也许decimal或float是更好的解决方案?