Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SQL do pozyskiwania danych z dowolnego poprzedniego miesiąca

Nie jestem ekspertem SQL, ale spróbuj tego:

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

Zobacz moje demonstracja skrzypiec

Wyjaśnienie:

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

Następny warunek:

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

Jeśli jednak chcesz tylko poprzedni miesiąc, niezależnie od tego, czy jest to ten sam rok co bieżąca data, czy nie, możesz usunąć drugi warunek, taki jak:

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

Zobacz Demo w tym celu.

Na przykład, jeśli aktualna data to 2013-01-19 potem dowolny December 2012 wniosek zostanie uwzględniony, mimo że nie jest z tego samego roku, ale oczywiście z poprzedniego miesiąca.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server:Jak pobrać dane z dynamicznych wielu tabel?

  2. Jak zablokować wyłącznie wiersz, który uniemożliwia operację CRUD?

  3. jak wymusić instalację studia zarządzania?

  4. INFORMATION_SCHEMA vs sysobjects

  5. Konwertuj typ danych czasu na format AM PM: