sql >> Base de Datos >  >> RDS >> Sqlserver

SQL para obtener datos de cualquier mes anterior

No soy un experto en SQL, pero prueba esto:

SELECT [Circuit Number]
,[Request Number]
,[RequestDate]
FROM Requests
WHERE RequestType LIKE 'Cancel%'
AND DATEDIFF(mm,Requestdate , GETDATE())=1
AND DATEDIFF(yy,Requestdate, GETDATE())=0

Vea mi demostración de violín

Explicación:

DATEDIFF(mm,Requestdate , GETDATE())=1 (Only Request previous Month of the Current Date)

Siguiente condición:

DATEDIFF(yy,Requestdate, GETDATE())=0 (Only in same year as Current Date)

Sin embargo, si desea solo el mes anterior, independientemente de si es el mismo año que la fecha actual o no, puede eliminar la segunda condición, como:

SELECT [Circuit Number]
,[Request Number]
,[RequestDate]
FROM Requests
WHERE RequestType LIKE 'Cancel%'
AND DATEDIFF(mm,Requestdate , GETDATE())=1

Vea la Demostración por esto.

Por ejemplo, si la fecha actual es 2013-01-19 entonces cualquier December 2012 la solicitud se incluirá a pesar de que no es del mismo año pero obviamente es del mes anterior.