"向'datetime'列添加值会导致溢出."

got*_*tqn 8 t-sql sql-server date function sql-server-2008-r2

MSDN清楚地说:

date参数不能递增到其数据类型范围之外的值.在以下语句中,添加到日期值的数字值超出了日期数据类型的范围.将返回以下错误消息:"向'datetime'列添加值会导致溢出."

这个例子:

SELECT DATEADD(year,2147483647, '2006-07-31');
SELECT DATEADD(year,-2147483647, '2006-07-31');
Run Code Online (Sandbox Code Playgroud)

这会导致错误:

"向'datetime'列添加值会导致溢出."

这似乎是对的.但是为什么我在执行这个SQL语句时遇到同样的错误:

SELECT DATEDIFF(YY,'1013-12-12',DATEADD(YY,-300,getdate()))
Run Code Online (Sandbox Code Playgroud)

更具体,唯一:

SELECT DATEADD(YY,-300,getdate())
Run Code Online (Sandbox Code Playgroud)

Sam*_*aan 11

'sql datetime range'的第一个google结果.1753年1月1日.这是你的下限.

对这个问题的评论增加了这个关于这个下界起源的琐事.