sql >> Databasteknik >  >> RDS >> Sqlserver

SQL för att hämta data från föregående månad

Jag är ingen SQL-expert men prova detta:

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

Se min Fiddle Demo

Förklaring:

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

Nästa villkor:

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

Men om du bara vill ha föregående månad, oavsett om det är samma år som aktuellt datum eller inte, kan du ta bort det andra villkoret, som:

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

Se demon för detta.

Till exempel om CurrentDate är 2013-01-19 sedan någon December 2012 Begäran kommer att inkluderas trots att den inte är från samma år utan uppenbarligen från föregående månad.



  1. MySQL GROUP EFTER åldersintervall inklusive nollintervall

  2. skillnaden mellan förklara plan och genomförandeplan

  3. Att använda IN med en underfråga använder inte index

  4. Vad är en tidsseriedatabas?