Thema: Delphi In SQL Zeitraum abfragen

Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#11

AW: In SQL Zeitraum abfragen

  Alt 14. Okt 2024, 17:04
Da alle Veranstaltungen irgendwie vor/in oder in/nach 2024 starten/enden, kann das so nicht funktionieren...
Die Abfrage verknüpft das StartDatum und das EndDatum aber mit AND und nicht mit OR. Insofern sollte eine Veranstaltung im Ergebnis schonmal nicht nach 2024 beginnen und nicht vor 2024 enden. (Das wäre übrigens eventuell auch ein valides Kriterium.)

Könntest du mal konkret die Start- und Ende-Daten der Records auflisten, die deiner Meinung nach nicht im Ergebnis sein sollten?

Übrigens: Deine Abfrage macht meiner Meinung nach auch eine falsche Konvertierung beim übergebenen Jahr (J):
DM1.DataModule1.IBCQuery1.SQL.Add('where ((EXTRACT(YEAR from DatumStart) <= '+QuotedStr(IntToStr(J))+') and (EXTRACT(YEAR from DatumEnde) >= '+QuotedStr(IntToStr(J))+')) ');

Da EXTRACT(YEAR FROM einen SmallInt zurückgibt, solltest du den nicht mit einem String vergleichen. Versuch es mal ohne die Quotes:
DM1.DataModule1.IBCQuery1.SQL.Add('where ((EXTRACT(YEAR FROM DatumStart) <= '+IntToStr(J)+') and (EXTRACT(YEAR FROM DatumEnde) >= '+IntToStr(J)+')) ');
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat