2010-12-06 5 views

Répondre

6
DATEADD(yy,-2,GETDATE()); 
+0

Yup désolé, j'ai oublié que ce n'était pas une chaîne! –

+0

C'est faux. Dans SQL Server 2008, cela sera déduit 2 jours et non 2 ans. y est le «jour de l'année» comme dy. –

+0

Je ne dois vraiment pas éditer si rapidement! :) –

19

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

ou

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

ou

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

Si vous voulez stocker comme variable:

DECLARE @twoYearsAgo DATETIME; 

SELECT @twoYearsAgo = DATEADD(year, -2, GETDATE()); 
3

On dirait que vous avez besoin de la fonction DateAdd() http://msdn.microsoft.com/en-us/library/ms186819.aspx

select dateadd(yy,-2,getdate()) 

vous obtient cet instant il y a 2 ans

si vous voulez le début de la journée il y a 2 ans, vous pouvez utiliser

select dateadd(dd,datepart(dd,getdate())-1,dateadd(mm,datepart(mm,getdate())-1,dateadd(yy,datepart(yy,getdate())-1902,0))) 

Je soupçonne qu'il y a une façon plus simple d'écrire ceci, mais c'est ce qui m'est venu à l'esprit.

+0

Ce sous-programme pour sélectionner le début de la journée est en fait ce que je cherche. Merci beaucoup! –

Questions connexes