Abfrage per SQL "die nächsten 7 Tage" möglich?
batuschka
- datenbank
Hallo
ich möchte gern, vom aktuellen Tag ausgehend, eine Liste der nächsten 7 Tage erhalten. Also, z.B. von heute ausgehend, soll die Liste dann wie folgt aussehen:
Montag, 21.5.
Dienstag 22.5
.
.
Sonntag 27.5.
Ist sowas per SQL zu handhaben? Gibt es einen Befehl, der eine solche Liste generiert. Oder muss ich mir da per VB-Script etwas eigenes schreiben?
Ich arbeite mit einem MS SQL-Server und greife auf diesen per ASP zu.
Danke
Hi,
Ist sowas per SQL zu handhaben?
Ja und man kann es aber auch ganz einfach nur in VBS tun, so ganz ohne Datenbank, dafür mit einer "Collection"
Wenn DB dann ... (z.b.) schreibe dir eine kleine Prozedur (Stored Procedure) oder Funktion (Table Valued Function) mit Eingabewert vom Typ Datum und Anzahl Iterationen und führe eine Schleife gemäss der Anzahl der Iterationen aus, wobei du für jeden Durchlauf jeweils einen Tag mit DATEADD hinzuaddierst.
CREATE PROC dbo.ErzeugeDatumsListe (
@startDatum datetime,
@anzahlTage int = 0
)
AS BEGIN
-- erzeuge eine memory tabelle
DECLARE @t TABLE (
DatumFeld datetime NOT NULL
)
DECLARE @currentIteration int
SET @currentIteration = 0
WHILE @currentIteration <= @anzahlTage BEGIN
INSERT @t (DatumFeld) VALUES (DATEADD(day, @currentIteration, GETDATE()))
SET @currentIteration = @currentIteration + 1
END
SELECT DatumFeld FROM @t
RETURN
END
Als Ausgabe erhältst du eine Datensatzmenge (mit nur 1 Spalte), deren Werte du mit der VB Funktion FormatDateTime in die gewünschte Ausgabeform bringen kannst.
Auch VB kennt eine Funktion DateAdd und man kann auch in VB Schleifen mit FOR, DO ... UNTIL, WHILE ... WEND basteln.
Gruss
Frank