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

3

我是SQL Server的新手,也许这个问题在这里已经重复了。因为我还没有找到解决我的问题的方法,所以我想在这里发布。那么这就是我的问题。

select(volume * speed)  from traffic_data_replica;

我正在尝试将两列的值相乘,数据类型都是smallint。我收到的错误消息是:

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

1个回答

7

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

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

您可以通过乘以1.0轻松实现此操作:
select 1.0*volume*speed
from  traffic_data_replica

这真是一条好信息 :) @Gordon Linoff 感谢您。"信息就是财富" - bibinmatthew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接