执行以下查询后,我得到一个错误
我不知道为什么会发生这种情况,因为它可以顺利运行几个星期。我只是想在此处添加日期,并使用between
子句将它们与开始日期和结束日期进行比较。
DATEADD(day, -1 , DATEADD(mm, DATEDIFF(mm,0,posting_date),0)) BETWEEN start_date and end_date
最佳答案
我可以使用以下代码重复该错误:
declare @posting_date datetime
set @posting_date = '1/1/1753'
select DATEADD(day, -1 , DATEADD(mm, DATEDIFF(mm,0,@posting_date),0))
运行后出现错误:
基本上,上述情况下的posting_date是SQL Server允许的最小日期时间值。如果然后尝试从中减去1天,则它将进入溢出状态。
我的猜测是您有一个设置为SQL Server's minimum date value的数据点。
关于sql - DateAdd列导致溢出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9119403/