Ich hab sowas für meine Autovermietung gebraucht...ich habs aber im Programm abgefragt und nicht in
SQL
Also:
IntStart1 = 06.05.2004 10:30
IntEnde1 = 08.05.2004 18:00
IntStart2 = 07.05.2004 12:00
IntEnde2 = 09.05.2004 17:30
Die Abfrage hat bei mir so gefunzt:
Delphi-Quellcode:
if (IntStart1 in [IntStart2..IntEnde2]) or (IntStart2 in [IntStart1..IntEnde1]) then
ShowMessage(Intervallüberlappung');
Ich hab nur der Kürze wegen in verwendet, in Delphi funzt das nicht, da TDateTime ja Double ist. Deshalb musst du mit >= und <= arbeiten.
Dadurch wird abgefangen ob Int1 in Int2 liegt und umgekehrt
[edit]Noch eine Erklärung und den Code vervollständigt
[/edit]