如何找到2年的回溯日期

时间:2010-12-06 11:57:44

标签: sql-server

我想找到今天的日期,但应该是2年前。例如,今天的日期是2010年6月12日,但我想要6/12/2008。我该如何在SQL服务器中执行此操作?

4 个答案:

答案 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)))

我怀疑有一种更清晰的写作方式,但这是首先想到的。