Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL server-将VARCHAR值更新为十进制_Sql_Sql Server_Insert_Decimal_Varchar - Fatal编程技术网

SQL server-将VARCHAR值更新为十进制

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

将资源表中护士资源的比率提高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 = 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时,转换失败。