By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
DECLARE @calenderDate DATETIME2(0) = '2019-05-16 05:00:00'
DECLARE @hr1Week int = 0
;with numcte AS
(
SELECT 0 [num]
UNION all
SELECT [num] + 1 FROM numcte WHERE [num] < (Select datediff(HOUR, @hr1Week, dateadd(DAY, 1, @hr1Week))-1)
)
select * from numcte
num |
---|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |