2010-12-06 27 views

Respuesta

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

Disculpa, se olvidó de que no era una cadena! –

+0

Esto está mal. En SQL Server 2008 esto deducirá 2 días, no 2 años. y es 'día del año' como dy. –

+0

¡Realmente no debo editar tan rápido! :) –

19

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

o

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

o

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

Si desea almacenar como una variable:

DECLARE @twoYearsAgo DATETIME; 

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

Suena como que necesita la función dateadd() http://msdn.microsoft.com/en-us/library/ms186819.aspx

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

le consigue este instante hace 2 años

sin embargo, si quieres el comienzo del día hace 2 años puedes usar

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

Sospecho que hay una forma más clara de escribir esto, pero esto fue lo primero que se me ocurrió.

+0

Esa subrutina para seleccionar el comienzo del día es realmente lo que estoy buscando. ¡Muchas gracias! –

Cuestiones relacionadas