我想找到今天的日期,但应该是2年前。例如,今天的日期是2010年6月12日,但我想要6/12/2008。我该如何在SQL服务器中执行此操作?
答案 0 :(得分:26)
SELECT DATEADD(year, -2, GETDATE())
或
SELECT DATEADD(yy, -2, GETDATE())
或
SELECT DATEADD(yyyy, -2, GETDATE())
如果您想将其存储为变量:
DECLARE @twoYearsAgo DATETIME;
SELECT @twoYearsAgo = DATEADD(year, -2, GETDATE());
答案 1 :(得分:10)
DATEADD(yy,-2,GETDATE());
答案 2 :(得分:5)
Select DateAdd(year, -2, getdate())
答案 3 :(得分:5)
听起来你需要dateadd()函数http://msdn.microsoft.com/en-us/library/ms186819.aspx
select dateadd(yy,-2,getdate())
2年前找到你这个瞬间
但是,如果您想要2年前的一天开始,您可以使用
select dateadd(dd,datepart(dd,getdate())-1,dateadd(mm,datepart(mm,getdate())-1,dateadd(yy,datepart(yy,getdate())-1902,0)))
我怀疑有一种更清晰的写作方式,但这是首先想到的。