Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana saya bisa menunjukkan semua waktu antara 2 parameter waktu yang berbeda?

Menggunakan CTE dan menganggap 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:Apa perbedaan antara CROSS JOIN dan FULL OUTER JOIN?

  2. Cari Tahu Mengapa Email Gagal Terkirim di SQL Server (T-SQL)

  3. Bagaimana Menambahkan ATAU Menjatuhkan Kolom Dari Tabel yang Diaktifkan CDC Tanpa Kehilangan Data di Database SQL Server - Tutorial SQL Server

  4. Masalah Tabel Sementara RODBC saat menghubungkan ke MS SQL Server

  5. Kueri yang efisien untuk membagi kolom yang dibatasi menjadi tabel terpisah