# where Abfrage auf ein mysql date feld



## joe89 (15. Apr 2010)

Ich möchte unter Java eine mysql Tabelle nach einem Feld vom Type 'Date'  abfragen.
Folgende Test-Abfrage funktioniert aber nicht.

"SELECT DATE_FORMAT(messdatum,'%d.%m.%y') AS messtag from messwerte where messdatum='01.01.2010';";

Wie muss ich diese Abfrage formulieren ? In der mysql-Console bekomme ich die richtigen Ergebnisse.

Gruss
joe89


----------



## SlaterB (15. Apr 2010)

funktioniert aber nicht == der Computer läuft genervt aus dem Zimmer?

-----

frag doch einfach das messdatum ab, in Java kannst du dann formatieren wie du willst


----------



## ARadauer (15. Apr 2010)

weg mit dem ;.. das könnte helfen..


----------



## joe89 (15. Apr 2010)

Vielen Dank für die Antworten.

Es ist so, dass diese Abfrage in der mysql-Console die korrekte Ergebnismenge anzeigt. Wird dieses Select Statement unter Java ausgeführt, wird kein einziger Datensatz gefunden. Es wird auch keine Fehlermeldung ausgegeben.  Durch das Hinzufügen oder Weglassen des Semikolons verändert sich die Ergebnismenge nicht.

Ich nehme an, dass das Select Statement unter Java anders formuliert werden muss.

Gruss

joe89


----------



## SlaterB (15. Apr 2010)

als erstes musst du klein anfangen, funktioniert folgendes?:
select * from messwerte

mit dem Datum in der Where-Bedingung kann man ganz schön Probleme haben wenn Gemeinheiten wie Zeitzone, Locale (deutsch oder englisch) miteinfließen,
kannst du auf eine Id, Zahl oder String erfolgreich einschränken?

für Date ist vielleicht ein PreparedStatement leichter, dem du ein richtiges Date-Objekt übergeben kannst


----------



## joe89 (16. Apr 2010)

Ich habe die Abfrage auf ein Minimum beschränkt und verschiedene Tests durchgeführt.

Im Ergebnis geben alle Abfragen einschliesslich der Abfrage nach Uhrzeit (time Feld) die erwartete Ergebnismenge zurück.

Ich werde es jetzt einmal mit einem Prepared-Statement versuchen.

Gruss
joe89


----------

