关于一个Sql Server2000 Convert数据类型转化的问题

山的那边还是山~ 2008-11-14 09:36:11

declare @iSumAmount decimal(10,2)
declare @iExchangeMoney NVARCHAR(10)
declare @replace NVARCHAR(10)

if @iExchangeMoney is NULL
set @iExchangeMoney='0'
if @replace is NULL
set @replace='0'

--问题在这句:
set @iSumAmount=convert(decimal(10,2),ltrim(rtrim(@iExchangeMoney)))+convert(decimal(10,2),ltrim(rtrim(@replace)))
--提示错误:
--服务器: 消息 8114,级别 16,状态 5,过程 SRECORD_Main_Add,行 174
--将数据类型 nvarchar 转换为 numeric 时出错。

--这个问题把我都快整死了!请帮忙看一下错在什么地方

--我试了多种方法:如改成下面这样还是不行:
set @iSumAmount=(convert(decimal,ltrim(rtrim(isnull(@iExchangeMoney, '0'))))+convert(decimal,ltrim(rtrim(isnull(@replace, '0')))))
...全文
139 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
谢谢,非常感谢!

受上头几位回复的启发,找到问题了,问题出在是由于一个参数不为NULL,但为空格时引起的一个到Decimal无法转化的问题。
lihuanmei 2008-11-14
  • 打赏
  • 举报
回复
把convert 改为vast试试
set @iSumAmount=(cast(ltrim(rtrim(isnull(@iExchangeMoney, '0'))) as numeric(10,2) )+cast(ltrim(rtrim(isnull(@replace, '0'))))as numeric(10,2))

但我想或许这两种类型不一定能相互转换啊
hyde100 2008-11-14
  • 打赏
  • 举报
回复
用 isnumeric(字段名)=0  来过滤
dobear_0922 2008-11-14
  • 打赏
  • 举报
回复
declare @iSumAmount            decimal(10,2) 
declare @iExchangeMoney NVARCHAR(10)
declare @replace NVARCHAR(10)

if isnumeric(@iExchangeMoney)=0
set @iExchangeMoney='0'
if isnumeric(@replace)=0
set @replace='0'

select @iExchangeMoney,@replace
/*
---------- ----------
0 0

(1 行受影响)
*/
csdyyr 2008-11-14
  • 打赏
  • 举报
回复
declare @iSumAmount            decimal(10,2)
declare @iExchangeMoney NVARCHAR(10)
declare @replace NVARCHAR(10)

if @iExchangeMoney is NULL
set @iExchangeMoney='0'
if @replace is NULL
set @replace='0'

--问题在这句:
set @iSumAmount=convert(decimal(10,2),ltrim(rtrim(@iExchangeMoney)))+convert(decimal(10,2),ltrim(rtrim(@replace)))
/*
The command(s) completed successfully.
*/
水族杰纶 2008-11-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wufeng4552 的回复:]
單從上面的語句看沒有錯誤
可能是你傳值中有非字符數值
你可以用isdate(值)=1過濾下,然後處理
[/Quote]
--錯了,應該是isnumeric()
水族杰纶 2008-11-14
  • 打赏
  • 举报
回复
單從上面的語句看沒有錯誤
可能是你傳值中有非字符數值
你可以用isdate(值)=1過濾下,然後處理

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧