# sql abfrage ... Problem mit Datumswert



## javaCR (14. Nov 2010)

Hallo!
Nachdem ich mittlerweile fast am verzweifeln bin, will ich hier mal mein problem posten:
Ich hab eine jdbc-odbc-schnittstelle zu einer ms access datenbank programmiert und möchte dort alle datensätze anzeigen lassen, deren Datum kleiner einem bestimmten Datumswert (den ich als string übergebe) ist. 

Hier ein Auszug meines sql codes:

```
executeQuery("select * from Pakete where Verfuegbarkeitsdatum <= {d' "" + s + "" '} and Belegungsnummer is Null order by ID");
```

als "Pakete" bezeichne ich meine tabelle, "Verfuegbarkeitsdatum" "Belegungsnummer" und "ID" sind Spaltenbezeichnungen. 
s ist eine String variable der ich mit 'new SimpleDateFormat ("dd.MM.yyyy HH:mm:ss")' ein Date objekt zugewiesen habe. Das Stringformat müsste also stimmen. 

Wenn ich das Programm laufen lasse kommt folgende Fehlermeldung:
Exception: [Microsoft] [ODBC Microsoft Access Driver] Syntaxfehler (fehlender Operator) in Abfrageausdruck 'Verfuegbarkeitsdatum <= d'04.04.2006 16:03:59'} and Belegungsnummer is Null '.

Ich hab den code von einem anderen Programm, dass ich selbst programmiert hab übernommen, wo es einwandfrei funktioniert. Ich kann mir also nicht erklären, warum es jetzt plötzlich hakt. Hat jemand von euch vielleicht eine idee wo das problem liegt, oder wie man das anders lösen kann? 

Danke schonmal im voraus!


----------



## z-mon (14. Nov 2010)

javaCR hat gesagt.:


> Hallo!
> Ich hab den code von einem anderen Programm, dass ich selbst programmiert hab übernommen, wo es einwandfrei funktioniert. Ich kann mir also nicht erklären, warum es jetzt plötzlich hakt.



Hallo javaCR,

war die Datenbank wo du dein "alte" Abfrage verwendet hast ebenfalls eine ms access?

Grüße


----------



## Michael... (14. Nov 2010)

Lass Dir das Statement mal auf der Konsole (unformatiert) ausgeben und versuche es direkte in Access auszuführen ==> wird nicht funktionieren
Wie es jetzt in Access aussehen muss - kann ich so spontan aber auch nicht sagen.

Empfehlung PreparedStatements verwenden. Damit kann man einfacher sicherstellen, dass der richtige Datentyp übergeben wird und vereinfacht die SQL Syntax des Statements.


----------



## javaCR (14. Nov 2010)

Danke für den Tipp.... Werds mal mit einem prepared statement versuchen!


----------

