2011-12-16 25 views
8

Intento seleccionar los productos que tienen un modelo de año entre +1 y -1 en el año actual. Y solo quiero que el Año (ex 2011) no sea la fecha y la hora completas.add + - 1 año en SQL Server

SELECT ProductName FROM tblProduct WHERE Year BETWEEN 
year(getdate()+1) AND year(getdate()-1) 

no funciona, pero tal vez algo similar ...

+0

¿Cuál es el tipo de AÑO? – chance

+0

seleccionar año (getdate() + 1) => 2011. esto parece estar funcionando ... – Bala

+0

Año es el tipo de datos INT – user1007103

Respuesta

12

está agregando el 1 a getdate() por lo que son la adición de 1 día

SELECT ProductName FROM tblProduct WHERE Year BETWEEN 
    (year(getdate()) -1) AND (year(getdate()) + 1) 
+0

¡Funciona muy bien! ¡Gracias! – user1007103

+0

Pequeña corrección: (año (getdate()) - 1) AND (año (getdate()) + 1) –

+0

@ t-clausen.dk ¡buena captura! –

9
SELECT dateadd(year, -1, getdate()) 

habría hecho :

SELECT productname 
FROM tblproduct 
WHERE [year] between (select dateadd(year, -1, getdate()) AND (select dateadd(year, +1, getdate()) 
Cuestiones relacionadas