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

Nhận tất cả các ngày trong phạm vi ngày trong SQL Server

Với sự trợ giúp nhỏ của bảng số.

declare @T table
(
  ID int identity primary key,
  FromDate date,
  ToDate date
)

insert into @T values
('2011-11-10', '2011-11-12'),
('2011-12-12', '2011-12-14')

select row_number() over(order by D.Dates) as SN,
       D.Dates
from @T as T
  inner join master..spt_values as N
    on N.number between 0 and datediff(day, T.FromDate, T.ToDate)
    cross apply (select dateadd(day, N.number, T.FromDate)) as D(Dates)
where N.type ='P'

Thử trên Dữ liệu SE



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cú pháp cho MERGE hàng đơn / upert trong SQL Server

  2. Hai lựa chọn hay một lựa chọn + một tham gia trong SQL?

  3. Cách sử dụng IF ... THEN Logic trong SQL Server

  4. Cách thêm khóa chính vào bảng hiện có trong SQL Server (ví dụ T-SQL)

  5. Làm thế nào để chuyển đổi hàng thành cột trong SQL Server?