Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL zum Abrufen von Daten eines beliebigen Vormonats

Ich bin kein SQL-Experte, aber versuchen Sie Folgendes:

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

Sehen Sie sich meine Fiddle-Demo an

Erklärung:

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

Nächste Bedingung:

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

Wenn Sie jedoch nur den Vormonat möchten, unabhängig davon, ob es sich um dasselbe Jahr wie das aktuelle Datum handelt oder nicht, können Sie die zweite Bedingung entfernen, z. B.:

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

Sehen Sie sich die Demo an dafür.

Beispiel:CurrentDate ist 2013-01-19 dann irgendein December 2012 Die Anfrage wird aufgenommen, obwohl sie nicht aus demselben Jahr, sondern offensichtlich aus dem Vormonat stammt.