Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQL per ottenere dati in qualsiasi mese precedente

Non sono un esperto di SQL, ma prova questo:

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

Guarda la mia Dimostrazione di violino

Spiegazione:

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

Condizione successiva:

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

Tuttavia, se desideri solo il mese precedente, indipendentemente dal fatto che sia lo stesso anno della data corrente o meno, puoi rimuovere la seconda condizione, ad esempio:

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

Vedi la Demo per questo.

Ad esempio, se CurrentDate è 2013-01-19 quindi qualsiasi December 2012 la richiesta verrà inserita nonostante non sia dello stesso anno ma ovviamente del mese precedente.