2017-10-16 65 views
0

我想寫一個基本的SQL查詢它輸出3-15個月之間的所有日期從當前日期:如何選擇不使用從表子句的日期範圍?

DATEADD(month, 3, GETDATE()) AND (DATEADD(month, 15, GETDATE())) 

美中不足的是雖然沒有從表中進行選擇。我只想執行一個基本的SELECT來獲取日期列表。這可能嗎?

+0

日期這裏的範圍是一組。我不認爲'SELECT'可以在沒有表格的情況下輸出一個集合。 – qxg

回答

2

下面將幫助你拉兩個日期之間的所有日期。

DECLARE @Date1 DATE, @Date2 DATE 
SET @Date1 = '2015-05-28' 
SET @Date2 = '2015-06-30' 

SELECT DATEADD(DAY,number+1,@Date1) [Date] 
FROM master..spt_values 
WHERE type = 'P' 
AND DATEADD(DAY,number+1,@Date1) < @Date2 
+0

真棒,非常感謝你 –

0

雖然已經有一個被接受的答案,但我提出了一個不依賴於無證和不支持的系統表的替代方案。

declare @Date1 date = '2015-05-28'; 
declare @Date2 date = '2015-06-30'; 
declare @Dates table (Date Date); 

while @Date1 <= @Date2 
begin 
    insert into @Dates (Date) values (@Date1); 
    set @Date1 = DateAdd(Day, 1, @Date1); 
end 

select * from @Dates;