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

Truy vấn sql để tạo ngày thanh toán hàng tháng trong một phạm vi ngày

Bạn có thể làm như sau:

DECLARE @SelectedDate DATETIME = '2016.01.30'
SELECT
     DATEADD(DAY, -1 - (DAY(EOMONTH(@SelectedDate)) - DAY(@SelectedDate)),  DATEADD(MONTH, v.m, DATEFROMPARTS(YEAR(@SelectedDate), 1, 1)))   
FROM
    (VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (11), (12)) AS v(m)

Còn bao nhiêu ngày nữa là hết tháng. Số ngày tìm thấy được xóa khỏi các tháng khác.

DAY(EOMONTH(@SelectedDate) (31) - DAY(@SelectedDate) (30) =left days (1)

Kết quả:

2016-01-30
2016-02-28
2016-03-30
2016-04-29
2016-05-30
2016-06-29
2016-07-30
2016-08-30
2016-09-29
2016-10-30
2016-11-29
2016-12-30


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thiết lập và cấu hình nhóm luôn sẵn sàng trong SQL Server

  2. Làm cách nào để loại bỏ các hàng trùng lặp?

  3. Tránh đặt tên theo thủ tục do người dùng lưu trữ SP% hoặc SP_%

  4. Cách chỉ định văn hóa bất biến khi sử dụng FORMAT () trong SQL Server

  5. truy cập các cột chưa gỡ xuống của bảng và chèn chúng vào một cột mới