sql >> Database >  >> RDS >> Sqlserver

SQL voor het verkrijgen van gegevens van een vorige maand

Ik ben geen SQL-expert, maar probeer dit:

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

Zie mijn Fiddle-demo

Uitleg:

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

Volgende voorwaarde:

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

Als u echter alleen de vorige maand wilt, ongeacht of het hetzelfde jaar is als de huidige datum of niet, dan kunt u de tweede voorwaarde verwijderen, zoals:

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

Zie de demo hiervoor.

Bijvoorbeeld als de huidige datum 2013-01-19 . is dan elke December 2012 verzoek zal worden opgenomen ondanks dat het niet van hetzelfde jaar is, maar duidelijk van de vorige maand.



  1. Hoe te bestellen op datum in SQLite

  2. MySQL-rij in aantal kolommen en som

  3. SQL Server:Msg 102, Level 15, State 1, Line 2 Onjuiste syntaxis bij '='

  4. De Adaptive Join Threshold