# mysql In Range Abfrage



## Tago (13. Dezember 2007)

Hallo zusammen.

Ich habe ein Problem mit einer Mysql-Abfrage.
Es gibt eine Datenbank in der Kalendertermine gespeichert sind.
vonDatum (Datum als timestamp)
bisDatum (Datum als timestamp)

Für einzelne Tage möchte ich jetzt die entsprechenden Eintrage haben.
dafür nehme ich 2 timestamps - startTag und endTag.

als sql dann etwas so 

```
... WHERE vonDatum BETWEEN startTag AND endTag OR bisDatum BETWEEN startTag AND endTag
```

d.h ja wenn vonDatum oder bisDatum in der Spanne vom startTag bis endTag liegen, dann wird ein Eintrag gefunden.

Was ist jetzt allerdings, wenn (Uhrzeit spielt jetzt keine Rolle):
vonDatum = 20.10.07 
bisDatum = 24.10.07
- also der Termin ist über mehrere Tage und ich suche im 22.10.07.

quasi müsste jetzt nach ranges gesucht werden. Wie
Range(vonDatum - bisDatum) schneidet die Range(startTag - endTag)

Gibt es eine Möglichkeit so etwas in mysql anzufragen?

Danke für eure Hilfe!


----------



## Tago (14. Dezember 2007)

Selbst drauf gekommen, ein wenig schlaf hilft machmal schon:


```
.. WHERE 

(vonDatum BETWEEN startTag AND endTag OR bisDatum BETWEEN startTag AND endTag)

OR

(vonDatum < startTag AND bisDatum > endTag)
```


----------

