我在DML语句中交叉应用了一个表值函数,该语句返回两列,其中一列是RiskValue(表示扫描周期的整数) 现在当我打印ValueValue值和dateadd函数时(y是函数别名,am是另一个表)
select cast(y.RiskValue as int),dateadd(m,cast(y.RiskValue as int),@RunningDate)
from .....
它给了我正确的值
6 | 'Some Date'
但是当我在where子句中使用它时
where am.DateOpen >= dateadd(m,cast(y.RiskValue as int),@RunningDate)
我收到错误:
向'datetime'列添加值会导致溢出
请注意,将硬编码值传递为
where am.DateOpen >= dateadd(m,6,@RunningDate)
工作正常。 (显然它会)
有什么建议可能出错吗?