[MSSQL] Zeitintervall mit Prüfung

Termos

Mitglied
Hallo Community,

folgendes Problem. Es wird sich wohl eher auf eine mathematische Formel beziehen ;/

Mein Datensatz hat ein Startdatum, ein intervall und ein UpdateDate Feld. Ausgehend vom Startdatum sollen imaginäre Intervalle in Größe eines intervall erzeugt werden.

Bsp.

01.01.2016 = startwert
15 Tage = intervall

Intervall 1 16.01.2016
Intervall 2 31.01.2016
Intervall 3 15.02.2016
....

Ich benötige ausgehen von getdate() das letzte und kommende Intervall. Um dann zu prüfen ob UpdateDate darin vorkommt.

Ich habe dabei an eine modolo Funktion gedacht die mir ausrechnet ob ich im aktuellen Intervall bin und UpdateDate darin vorkommt, das hilft mir aber nicht für das kommende Intervall ;/

Hat das jemand verstanden und eine Idee dazu? Wäre klasse, vielen Dank im voraus.
 
Mit MSSQL habe ich noch nie gearbeitet. Aber in anderen DBMS macht man das meistens so, dass man eine Datumshilfstabelle erstellt und dann mit dieser weiterarbeitet.

Ich habe auf die schnelle mit SQLfiddle und der Hilfe vom Internet (um die genaue MS SQL Syntax hinzukriegen)

Der Link zum Test: http://sqlfiddle.com/#!6/60674/7
tbl_my_data ist in dem Fall die Tabelle mit deinem Intervall, tbl_dates die Hilfstabelle mit den Daten für die nächsten zig Jahre
SQL:
select
  t.ref_date,
  datediff("d", d.start_date, t.ref_date) AS diff
from
  tbl_my_data AS d,
  tbl_dates AS t
where
  (datediff("d", d.start_date, t.ref_date) % d.intervall) = 0

Das ganze kannst du jetzt noch mit deiner getDate()-Logik verknüpfen (die ich nicht ganz verstanden habe)
 
Zurück