SQL server-将VARCHAR值更新为十进制
将资源表中护士资源的比率提高10%。 我尝试了这个代码,但失败了SQL server-将VARCHAR值更新为十进制,sql,sql-server,insert,decimal,varchar,Sql,Sql Server,Insert,Decimal,Varchar,将资源表中护士资源的比率提高10%。 我尝试了这个代码,但失败了 UPDATE Resourcetbl SET Rate = convert(varchar(255), convert(decimal(10,2), Rate * 1.1)) WHERE ResName = 'nurse'; 将varchar转换为数据类型numeric时出现错误消息算术溢出错误 速率为VARCHAR(20)在乘法之前将速率转换为十进制: UPDATE Resourcetbl SET Rate = c
UPDATE Resourcetbl
SET Rate = convert(varchar(255), convert(decimal(10,2), Rate * 1.1))
WHERE ResName = 'nurse';
将varchar转换为数据类型numeric时出现错误消息算术溢出错误
速率为VARCHAR(20)在乘法之前将
速率
转换为十进制
:
UPDATE Resourcetbl
SET Rate = convert(varchar(255), convert(decimal(10,2),Rate) * 1.1)
WHERE ResName = 'nurse';
因为在进行算术运算之前,必须将值转换为十进制
convert(varchar(255), (convert(decimal(10,2), Rate) * 1.1))
你可以使用CAST
UPDATE Resourcetbl
SET Rate = convert(varchar(255),CAST(rate AS DECIMAL(9,2)) * 1.1))
WHERE ResName = 'nurse';
出乎意料-这就完成了任务 更新资源TBL 设定速率+=(速率*10)/100
其中ResName=‘护士’ 我更喜欢语法
CAST(速率为十进制(10,2))
而不是convert。您应该使用正确的类型(数字类型)存储rate
。是的,但表已创建,因此我无法更改它不工作>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>将varchar值“22.000”转换为数据类型int时,转换失败。我想您不知道需要做什么want@DraganSekuloski正如我在尝试将比率提高10%之前提到的,在不起作用的地方添加样本数据资源表中的资源。但利率是VARCHAR(20),这给了我一个problem@DraganSekuloski此代码适用于您提供的数据。也许,在将varchar值“22.000”转换为数据类型int时,Rate
columnConversion中没有数字的情况下,转换失败。@DraganSekuloski:-更新了我的答案。请现在检查!将varchar值“24.200”转换为数据类型int时,不工作转换失败。感谢您的努力,>>>>>>>>>>>>>>>>>>最后,此工作更新Resourcetbl设置速率+=(速率*10)/100,其中ResName=“护士”;将varchar值“22.000”转换为数据类型int时,转换失败。