2017-05-30 39 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;