2013-06-18 4 views
0

Если у меня есть 2 дня 2013-06-03 и 2013-06-10 как примеры, как распечатать список всех дат между этими двумя датами?Распечатайте все даты между 2 датами

Например, список в этом случае будет:

2013-06-22 
2013-06-23 
2013-06-24 
2013-06-25 
2013-06-26 
2013-06-27 
2013-06-28 
2013-06-29 
2013-06-30 
2013-07-01 
2013-07-02 
2013-07-03 
2013-07-04 
2013-07-05 
2013-07-06 
2013-07-07 
+2

Это, кажется, ответит здесь. http://stackoverflow.com/a/1378788/2429205 дайте мне знать, если я ошибаюсь. –

ответ

5
DECLARE @Start date = '2013-06-03' 
DECLARE @End date = '2013-06-10' 

;WITH Dates AS 
(
    SELECT @Start AS [Date] 
    UNION ALL 
    SELECT DATEADD(DAY, 1, [Date]) 
    FROM Dates 
    WHERE [Date] < @End 
) 

SELECT [Date] 
FROM Dates 
OPTION (MAXRECURSION 0) 
+0

Я предпочитаю это решение по дублированным ссылкам! Благодарю. – oshirowanen

-3

Я думаю, что вы ищете это:

SELECT * FROM table_name WHERE DATE_COLUMN_NAME МЕЖДУ '03 -June -2013 'AND '10 -JUNE-2013'

+0

Это предполагает, что у вас есть таблица, предварительно заполненная каждой датой между двумя точками, что, как я подозреваю, у OP нет (но это не плохая идея). – Jonathan

Смежные вопросы