我正在尝试执行以下查询
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时转换失败。”
我使用了错误的数据类型吗?
答案 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是更好的解决方案?