# Datum aus String mit DB vergleichen



## djnelly (8. November 2006)

Hallo Leute...

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


```
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


----------



## zeja (9. November 2006)

```
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.


----------



## Mark (9. November 2006)

Hi!

Heißt "Überschneidung" nicht: "einer der gegebenen Werte liegt zwischen den DB-Einträgen"?

```
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"


----------



## djnelly (9. November 2006)

Ich Danke euch!

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


----------

