如何找到2年的回溯日期

Ami*_*til 18 sql-server

我想找到今天的日期,但它应该是2年前.例如今天的日期是2010年6月12日,但我想要6/12/2008.我怎么能在SQL服务器上这样做?

Nei*_*ght 28

SELECT DATEADD(year, -2, GETDATE())

要么

SELECT DATEADD(yy, -2, GETDATE())

要么

SELECT DATEADD(yyyy, -2, GETDATE())

如果要将其存储为变量:

DECLARE @twoYearsAgo DATETIME;

SELECT @twoYearsAgo = DATEADD(year, -2, GETDATE());
Run Code Online (Sandbox Code Playgroud)


cod*_*ger 7

Select DateAdd(year, -2, getdate())


Rob*_*obb 6

听起来你需要dateadd()函数http://msdn.microsoft.com/en-us/library/ms186819.aspx

select dateadd(yy,-2,getdate()) 
Run Code Online (Sandbox Code Playgroud)

2年前,这个瞬间得到你

但是,如果你想要在2年前开始一天,你可以使用

select dateadd(dd,datepart(dd,getdate())-1,dateadd(mm,datepart(mm,getdate())-1,dateadd(yy,datepart(yy,getdate())-1902,0)))
Run Code Online (Sandbox Code Playgroud)

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