Frank (no reg): Abfrage per SQL "die nächsten 7 Tage" möglich?

Beitrag lesen

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