Wie wähle ich die letzten 5 Tage für ein bestimmtes Datum aus?Wie Datum der letzten 5 Tage auswählen?
bestimmten Datum: 2015-11-14
Auswahlabfrage sollte wie unten Ausgang zurückkehren -
2015-11-14
2015-11-13
2015-11-12
2015-11-11
2015-11-10
Wie wähle ich die letzten 5 Tage für ein bestimmtes Datum aus?Wie Datum der letzten 5 Tage auswählen?
bestimmten Datum: 2015-11-14
Auswahlabfrage sollte wie unten Ausgang zurückkehren -
2015-11-14
2015-11-13
2015-11-12
2015-11-11
2015-11-10
Sie können einen rekursiven CTE verwenden:
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;
Offensichtlich können Sie einen beliebigen anderen Zeitpunkt verweisen Sie wollen statt getdate()
. Ihr Beispiel weist darauf hin, dass das aktuelle Datum 2015-11-14 ist, was vor einer Weile war.
können Sie tally Tabelle verwenden, wie unten
Declare @dt date = getdate()
Select top (5) Dt = DateAdd(day, -Row_number() over (order by (select null)), @dt) from master..spt_values
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
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;
Letzte 5 Tage von dem, was? Ernsthaft .... Sie müssen ein gewisses Maß an Informationen bereitstellen, wenn Sie Hilfe erwarten. –
Letzte 5 Tage von was? Sie müssen genauer sein. Beziehen Sie sich darauf, die 5 Tage vor einem bestimmten Datum zu bekommen? – Eli
@SeanLange jinx. – Eli