操作数数据类型varchar对减法运算符无效。在SQL Server中

时间:2016-10-20 08:35:01

标签: sql sql-server

我有这样的查询:

Update T_Assets set F_Asset_CurrentValue=(F_Asset_CurrentValue - '99.58')
Where F_Asset_Code='ITSRDL00001'

但我收到了错误:

  

Msg 8117,Level 16,State 1,Line 1
  操作数数据类型varchar对减法运算符

无效

1 个答案:

答案 0 :(得分:3)

您收到此错误是因为算术操作的两个侧都是字符类型。

在以下示例中,隐式转换为“123”为123

public class MarkerDemoActivity extends android.support.v4.app.FragmentActivity
implements OnMarkerClickListener
{
    private Marker myMarker;    

    private void setUpMap()
   {
    .......
    googleMap.setOnMarkerClickListener(this);

    myMarker = googleMap.addMarker(new MarkerOptions()
                .position(latLng)
                .title("My Spot")
                .snippet("This is my spot!")
                .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));
    ......
}

@Override
public boolean onMarkerClick(final Marker marker) {

   String name= marker.getTitle();

    if (name.equalsIgnoreCase("My Spot")) 
    {
        //write your code here
    }
}

在以下示例中,隐式转换为“456”为123

select      456   - '123';

以下示例产生错误

select      '456' - 123;
select      '456' - '123';

我的建议是使用显式转换

Msg 402, Level 16, State 1, Line 1
The data types varchar and varchar are incompatible in the subtract operator.