2017-05-30 110 views
-5

如何選擇最近5天的prio給定日期?如何選擇最近5天的日期?

給定日期:2015-11-14

選擇查詢應返回類似下面的輸出 -

2015-11-14 
2015-11-13 
2015-11-12 
2015-11-11 
2015-11-10 
+6

過去5天?認真......你需要提供某種程度的信息,如果你期望任何幫助。 –

+1

最近5天的什麼?你需要更具體。你是指在給定日期前5天獲得? – Eli

+1

@SeanLange jinx。 – Eli

回答

0

您可以使用遞歸CTE:

with dates as (
     select cast(getdate() as date) as dte 
     union all 
     select dateadd(day, -1, dte) 
     from dates 
     where datediff(day, dte, getdate()) <= 4 
    ) 
select * 
from dates 
order by dte desc; 

很明顯,你可以參考其他任何你約會而不是getdate()。你的例子表明當前日期是2015-11-14,這是前一陣子。

0

您可以使用符合表如下什麼

Declare @dt date = getdate()  
Select top (5) Dt = DateAdd(day, -Row_number() over (order by (select null)), @dt) from master..spt_values 
-1
DECLARE @fromData date = getdate() 
DECLARE @daysBack int = 5 

;WITH dates AS (

    SELECT 1 as LP, @fromData as Dates 
    UNION ALL 
    SELECT LP + 1, DATEADD(DAY,-1,@fromData) 
    FROM dates 
    WHERE LP < @daysBack 
) 

SELECT * 
FROM dates 
0
DECLARE @startdate date = getdate(); 
DECLARE @NbDays int = 5; 

WITH ListDate AS (
SELECT 1 as LP, @startdate as Dt 
UNION ALL 
SELECT LP + 1, DATEADD(DAY,-1,Dt) 
FROM ListDate 
WHERE LP < @NbDays 
) 

SELECT * FROM ListDate;