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

Tách phạm vi ngày thành các hàng năm-tháng trên SQL Server 2005

Đây là một phương pháp sử dụng CTE đệ quy:

with CTE as (
      select id, dateStart as dte, dateEnd
      from t
      union all
      select id, dateadd(month, 1, dte), dateEnd
      from CTE
      where dateadd(month, 1, dte) < dateEnd
     )
select id, dte
from CTE;

Bạn có thể chuyển đổi kết quả cuối cùng sang bất kỳ định dạng nào bạn thích. Ví dụ:

select id, year(dte) * 10000 + month(dte) as yyyymm_int

hoặc

select id, cast(year(dte) * 10000 + month(dte) as varchar(255)) as yyyymm


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 3 cách để tìm hiểu xem một cột có phải là một cột được tính toán trong SQL Server hay không

  2. Bảng tạm thời sử dụng JDBC với null ResultSet

  3. Cách khắc phục “Thủ tục yêu cầu tham số‘ @statement ’thuộc loại‘ ntext / nchar / nvarchar ’.” Lỗi trong máy chủ SQL

  4. Tại sao newid () hiện thực hóa ở cuối truy vấn?

  5. Cách giải quyết Câu lệnh không trả về lỗi tập hợp kết quả?