Datum aus String mit DB vergleichen

djnelly

Erfahrenes Mitglied
Hallo Leute...

ich habe eine Datenbank, diese sieht in etwas so aus:

Code:
id       datum_von         datum_bis
1        2006-10-12        2006-10-25
2        2006-11-01        2006-11-15
3        2006-10-28        2006-11-12
4        2006-11-05        2006-11-10
5        2006-10-25        2006-11-03

Nun habe ich in zwei php Variablen ein "von" und ein"bis" Datum.
Wie muss meine SQL Befehl aussehen, wenn ich alle ID`s haben möchte, welche in den Zeitraum meiner php Datumsangaben fallen.

Beispiel:

PHP Datumsangabe: 2006-11-04 / 2006-11-06
Nun bräuchte ich alle Datensätze, welche mein Datum kreuzen, also in diesem Fall: ID2, ID3, ID4


Danke
 
SQL:
SELECT ID 
FROM datum 
WHERE "2006-11-04" > datum_von 
  AND "2006-11-06" < datum_bis;

Gibt ID 2 und 3 aus. Warum 4 da mit reinfallen sollte ist mir nicht so recht klar.
 
Hi!

Heißt "Überschneidung" nicht: "einer der gegebenen Werte liegt zwischen den DB-Einträgen"?
Code:
SELECT id FROM tabelle
WHERE (
    (datum_von < php_datum_von AND php_datum_von < datum_bis) OR
    (datum_von < php_datum_bis AND php_datum_bis < datum_bis)
)
...?

Liebe Grüße,
Mark.

//edit: "Überschneidung" = "welche mein Datum kreuzen" ;)
 
Ich Danke euch!

PS: Auf die einfache Abfrage bin ich auch bekommen. Aber ich habe ja mit Absicht Überschneidung hingeschrieben.
 
Zurück