1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| DECLARE @start_date datetime2 = '2016-01-01'
, @end_date datetime2='2017-01-01';
WITH
N AS (SELECT NULL AS v UNION ALL SELECT NULL)
, N1 AS (SELECT A.v FROM N AS A CROSS JOIN N AS B)
, N2 AS (SELECT A.v FROM N1 AS A CROSS JOIN N1 AS B)
, N3 AS (SELECT A.v FROM N2 AS A CROSS JOIN N2 AS B)
, N4 AS (SELECT A.v FROM N3 AS A CROSS JOIN N3 AS B)
, DT AS
(
SELECT DATEADD
(
day
, ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) - 1 -- pour avoir le zéro
, @start_date
) AS dt
FROM N4
)
SELECT dt
FROM DT
WHERE dt < @end_date |
Partager