我有一个SQL查询来检查DateTime值(“ 9999-12-31”以上)是否溢出。但是仍然在运行时抛出一些溢出异常。我究竟做错了什么?
码
SELECT CASE
WHEN Dateadd(d,s.ClaimDelay,si.IssueDate) NOT IN (9999-12-31) THEN si.issuedate
ELSE Dateadd(d,s.ClaimDelay,si.IssueDate)
END
FROM SubscriptionIssues si
LEFT OUTER JOIN Subscriptions s ON s.Id=si.SubId
例外
向“ datetime”列添加值会导致溢出。
您的案例陈述显然要增加太多天,si.IssueDate
以至于结果大于Dec 31, 9999
编辑您的代码,如下所示:-
SELECT CASE
WHEN datediff(d,si.IssueDate,'9999-12-31')<s.ClaimDelay THEN si.issuedate
ELSE Dateadd(d,s.ClaimDelay,si.IssueDate)
END
FROM SubscriptionIssues si
LEFT OUTER JOIN Subscriptions s ON s.Id=si.SubId
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句