Sql 日期为INT时的DateADD()

Sql 日期为INT时的DateADD(),sql,Sql,我正在尝试使用DateAdd(),但我的日期是INT。我知道Convert(),但我不确定我做错了什么: 选择DATEADD(dd,-60,转换(datetime,20161231)) 它抛出:“将表达式转换为数据类型datetime时出现算术溢出错误”。请建议。先将int转换为字符串。日期中的破折号是可选的。。。只是更具可读性 select DATEADD(dd,-60,cast(20161231 as varchar(10))) 返回 2016-11-01 00:00:00.000 只是

我正在尝试使用DateAdd(),但我的日期是INT。我知道Convert(),但我不确定我做错了什么: 选择DATEADD(dd,-60,转换(datetime,20161231))


它抛出:“将表达式转换为数据类型datetime时出现算术溢出错误”。请建议。

先将int转换为字符串。日期中的破折号是可选的。。。只是更具可读性

select DATEADD(dd,-60,cast(20161231 as varchar(10)))
返回

2016-11-01 00:00:00.000
只是为了好玩,试试下面的方法

Select cast('2016-12-31' as date)
      ,cast('20161231'   as date)