Sql server SQL抛出算术溢出错误

Sql server SQL抛出算术溢出错误,sql-server,error-handling,overflow,aggregate-functions,Sql Server,Error Handling,Overflow,Aggregate Functions,在运行一个简单的聚合函数时,我遇到了一个“算术溢出错误,将表达式转换为数据类型int”错误(请参阅下面的代码)。当我缩小日期范围时,我可以看到结果实际上超过了INT数据类型限制……我已经尝试将整个表达式转换为BIGINT w/o成功。有人知道我如何解决这个问题吗 所有这3个查询都会抛出上述相同的错误: Select (SUM(ACDTalkTimeInSec) + SUM(TotAcwTimeInSec) + SUM(HoldTimeInSec)) as AHT From ColTelepho

在运行一个简单的聚合函数时,我遇到了一个“算术溢出错误,将表达式转换为数据类型int”错误(请参阅下面的代码)。当我缩小日期范围时,我可以看到结果实际上超过了INT数据类型限制……我已经尝试将整个表达式转换为BIGINT w/o成功。有人知道我如何解决这个问题吗

所有这3个查询都会抛出上述相同的错误:

Select  (SUM(ACDTalkTimeInSec) + SUM(TotAcwTimeInSec) + SUM(HoldTimeInSec)) as AHT
From ColTelephony.dbo.vwACDSkillCombined acd
Where WorkDte between '1/2/2018' AND '10/5/2018'

Select  CAST(Cast(SUM(ACDTalkTimeInSec) AS BIGINT) + CAST(SUM(TotAcwTimeInSec) AS BIGINT) + CAST(SUM(HoldTimeInSec) AS BIGINT) AS BIGINT) as AHT
From ColTelephony.dbo.vwACDSkillCombined acd
Where WorkDte between '1/2/2018' AND '10/5/2018'

Select  Cast(((SUM(ACDTalkTimeInSec) + SUM(TotAcwTimeInSec) + SUM(HoldTimeInSec))) AS BIGINT) as AHT
From ColTelephony.dbo.vwACDSkillCombined acd
Where WorkDte between '1/2/2018' AND '10/5/2018'

SMor在评论中回答了这个问题,但下面是sql:

Select SUM(CAST(ACDTalkTimeInSec AS BIGINT)) + SUM(CAST(TotAcwTimeInSec AS BIGINT)) 
    + SUM(CAST(HoldTimeInSec AS BIGINT)) as AHT
From ColTelephony.dbo.vwACDSkillCombined acd
Where WorkDte between '1/2/2018' AND '10/5/2018'

如果SMor发布了他们的答案,那么接受它。我没有测试代码,所以请原谅任何拼写错误。

您需要在求和之前进行转换,而不是之后。谢谢!工作完美!我讨厌答案这么简单,哈哈。请作为答案发布,我会这样标记。再次感谢!我在寻找同样的问题。谢谢@Michael