Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SQL để lấy dữ liệu bất kỳ tháng trước

Tôi không phải là chuyên gia SQL nhưng hãy thử điều này:

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

Xem Demo Fiddle của tôi

Giải thích:

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

Điều kiện tiếp theo:

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

Tuy nhiên, nếu bạn chỉ muốn tháng trước đó bất kể nó có cùng năm với Ngày hiện tại hay không thì bạn có thể loại bỏ điều kiện thứ hai, như:

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

Xem Demo cho điều này.

Ví dụ:nếu Ngày hiện tại là 2013-01-19 sau đó bất kỳ December 2012 yêu cầu sẽ được bao gồm mặc dù không cùng năm nhưng rõ ràng là của tháng trước.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm ngày / giờ cột của bảng được tạo

  2. Thay đổi mức độ ưu tiên của tài khoản trong cấu hình thư cơ sở dữ liệu (SSMS)

  3. Điều kiện có điều kiện trong SQL Server

  4. Xem liệu một Bảng có Ràng buộc DEFAULT trong SQL Server hay không bằng cách sử dụng OBJECTPROPERTY ()

  5. mysqldump tương đương cho SQL Server