Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Вземете всички дати в диапазона от време в SQL Server

С малка помощ от таблица с числа.

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'

Опитайте с SE Data



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Регистър на транзакциите на SQL Server — част 2

  2. Защо се извиква тригер за вмъкване, когато няма данни за вмъкване?

  3. поръчка чрез newid() - как работи?

  4. Оценяване на материалните запаси „първо влязло, първо излязло“ (FIFO).

  5. Услугите не се виждат в SQL Server Configuration Manager