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

Как мога да покажа цялото време между 2 различни времеви параметъра

Използване на CTE и приемане, че hour part of @time is zero :

declare @time time(0) = '00:15', 
        @start time(0) = '12:00', 
        @end time(0) = '15:00'

;with cte as (
    select @start sTime, dateadd(minute, datepart(minute,@time), @start) eTime
    union all
    select eTime, dateadd(minute, datepart(minute,@time), eTime)
    from cte
    where dateadd(minute, datepart(minute,@time), eTime) <= @end
)
select left(sTime,5) + ' - ' + left(eTime, 5) results 
from cte

--results
12:00 - 12:15
12:15 - 12:30
12:30 - 12:45
12:45 - 13:00
13:00 - 13:15
13:15 - 13:30
13:30 - 13:45
13:45 - 14:00
14:00 - 14:15
14:15 - 14:30
14:30 - 14:45
14:45 - 15:00


  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 заявка xml атрибут за стойност на елемент

  2. Обратно инженерство за диаграмиране на база данни във Visio с SQL Server 2008

  3. 7 начина за връщане на всички таблици с първичен ключ в SQL Server

  4. как да имам двоен цикъл while в sql сървър 2008

  5. Как да активирам MSDTC на SQL Server?