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

Số ngày còn lại trong tháng hiện tại

Vì đây là sql server 2008 nên bạn không thể sử dụng EOMonth (đã được giới thiệu trong phiên bản 2012).
Bạn phải thực hiện một số bổ sung ngày tháng và khác biệt ngày tháng:

SELECT DATEDIFF(DAY, 
                GETDATE(),
                DATEADD(MONTH, 
                        1, 
                        DATEADD(DAY, 1 - DAY(GETDATE()), GETDATE()) 
                       ) 
               ) - 1 

giải thích:
DATEADD(DAY, 1 - DAY(GETDATE()), GETDATE()) lấy ngày đầu tiên của tháng hiện tại, gói DATEADD thêm một tháng và gói DATEDIFF trả về số ngày giữa ngày hiện tại và ngày đầu tiên của tháng tiếp theo. Đây là lý do tại sao bạn cần cấu trúc con 1 để có số ngày chính xá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. SET so với SELECT khi gán biến?

  2. Số đếm không điều chỉnh (*) so với bảng Hệ thống

  3. Cập nhật nhiều bảng trong SQL Server bằng INNER JOIN

  4. Cách tránh tình trạng chạy đua cơ sở dữ liệu khi tăng PK của hàng mới theo cách thủ công

  5. C # Tương đương của Kiểu dữ liệu Máy chủ SQL