# Zeitraum aus SQL-Tabelle



## Takar110 (15. Feb 2016)

Moin Leute, 

ich hab ein Problem.  
Ich werde langsam irre weil ich denke es ist eigentlich ganz simpel aber bekomme es einfach nicht hin. 
Und zwar habe ich eine SQL-Tabelle mit einem "Leihzeitpunkt" (TimeStamp). Nun möchte ich aber über die Parameter "vonMonat", "vonJahr", "bisMonat" und "bisJahr" mitgeben das nur die Spalten ausgegeben werden deren Leihzeitpunkt innerhalb des angegebenen Zeitraums liegt. 

```
"select " + selectAuswahl + " from leihvorgang join film on leihvorgang.film_id =  film.id join kundenkartei on leihvorgang.kunde_id = kundenkartei.id where " + Zeitraum + " order by leihvorgang.id desc";
```

so müsste dann ungefähr das SQL-Statemanet aussehen..


----------



## Thallius (15. Feb 2016)

Du holst Dir den TimeStamp von dem Zeitraum per Java und machst einfach einen
WHERE leihvorgang.Leihzeitpunk>startTimeStamp AND leihvorgang.Leihzeitpunkt<endTimeStamp

Gruß

Claus


----------



## Takar110 (15. Feb 2016)

Jaa, klingt ziemlich gut! Ich versuche es gleich mal. Vielen Dank


----------



## kneitzel (15. Feb 2016)

Die Zeitstempel kann man sich auch in SQL zusammen bauen. Anfang ist ja relativ einfach, da dies ja einfach der 1. des Monats um 0 Uhr ist. Ende wird etwas schwieriger, da wir ja den letzten Tag des Monats brauchen. Aber da könnte man dann etwas bauen wie: Ich nehme den 27. des angegebenen Monats, addiere 5 Tage und ziehe dann den aktuellen Tag wieder ab + 1 Tag. Dann habe ich den 1. des Folgemonats um 0:00 Uhr und dann ist ein kleiner als genau das, was man braucht.

Das ist aber in einer einzelnen SQL Abfrage recht unschön. In Java die Zeitstempel zu bauen könnte einfacher sein. Ansonsten wäre eine stored Procedure besser oder man führt mehrere Befehle ausm die von einander getrennt sind und man baut sich dann in variablen die Zeitstempel um dann die Variablen zu nutzen. (So dass die Datenbank unterstützt - mit MS SQL wäre das zumindest kein Thema. MySQL und Co sollten das aber ebenso können.


----------

