将表达式转换为数据类型smallint的算术溢出错误

时间:2014-02-11 13:01:16

标签: sql sql-server-2008

我是SQL Server的新手,这个问题可能会在这里重复。因为我没有找到解决我问题的方法。我希望在这里发帖。所以这是我的问题

select(volume * speed)  from traffic_data_replica;

我试图将两列中的值相乘,两列的数据类型都是smallint。我得到的错误是:

  

Msg 8115,Level 16,State 2,Line 1
  将表达式转换为数据类型smallint的算术溢出错误。

1 个答案:

答案 0 :(得分:3)

在计算之前将其中一个值转换为“更大”类型:

select cast(volume as int) * speed
from traffic_data_replica;

您也可以通过乘以1.0来轻松完成此操作:

select 1.0*volume*speed
from  traffic_data_replica