sqlite select

tritronic

Mitglied
Hallo zusammen,

ich habe mal wieder ein kleines Problem:

1) ich habe eine Tabelle ABLAGE in Java mit verschiedenen Feldern erzeugt. Unter anderem das Feld eingetragenDatum TEXT (Beispielwert: 2015,12,02)

2) Mit Java erzeuge ich das Tagesdatum und schreibe dieses in einen String
// ErmittlungTagesdatum
DateTimeFormatter datumsFormat = DateTimeFormatter.ofPattern("yyyy,MM,dd");
LocalDate tagesdatum= LocalDate.now();
String heute= tagesdatum.format(datumsFormat);

3) wenn ich mit
System.out.println("Heute = " + heute);
eine Ausgabe auf der Console mache erhalte ich
selectdatum 2015,12,02

4) mit dem select in Java
"SELECT eingetragenDatum FROM ABLAGE;";
erhalte ich alle Werte.

5) mit dem select in Java
"SELECT eingetragenDatum FROM ABLAGE WHERE eingetragenDatum = '" + heute + ";";
erhalte ich keine Werte

Woran kann das liegen?

Vielen Dank für die kommenden Antworten
 
Weil dir ein schließendes ' fehlt? Damit ist die SQL Syntax falsch und das Statement kann nicht richtig ausgeführt werden -> sollte aber eine Exception liefern.
 
sorry das ' fehlte nur hier im Text. Mein Fehler. Ist wohl rausgerutsch, als ich einige unwichtige Dinge entfernt habe

5) mit dem select in Java
"SELECT eingetragenDatum FROM ABLAGE WHERE eingetragenDatum = '" + heute + "';";
erhalte ich keine Werte
 
Zunächst mal, bitte benutze für das Datum das ISO8601 Format. Das macht die Sache später wesentlich einfacher.

Dann ist das Semikolon hinter dem Query überflüssig. Lass das mal weg. Ich glaube aber nicht das es daran liegt, da es einfach ignoriert werden dürfte.

Sicher, dass heute keine führenden oder folgenden White Spaces hat?

Achja, und wenn

System.out.println("Heute = " + heute);

zu dieser Ausgabe führt...

selectdatum 2015,12,02

dann bist du ein MAgier oder sowas...

Gruß

Claus
 
Grummelt vor sich hin. Das selectdatum 2015,12,02 war die falsche Zeile

heute 2015,12,02

Das Semikolon kann tatsächlich weg. Ändert aber nichts an meinem Problem.

Da ich heute mit dem DateTimeFormatter datumsFormat = DateTimeFormatter.ofPattern("yyyy,MM,dd"); erzeugt habe, sollte es keine White Spaces haben. Wie könnte ich die notfalls entfernen?
 
Lass Dir am besten das heute mal direkt vor dem query ausgeben. Ich kann mir nicht vorstellen das der Query nicht funktioniert wenn das heute korrekt ist.
 
trim() eingebaut:

// ErmittlungTagesdatum
DateTimeFormatter datumsFormat = DateTimeFormatter.ofPattern("yyyy,MM,dd");
LocalDate tagesdatum= LocalDate.now();
String heute= tagesdatum.format(datumsFormat).trim();

Ausgabe heute auf Console mit
System.out.println("heute=XX" + heute+ "XX");
(die XX, um zu sehen, ob davor oder danach noch etwas kommt)
=> heute=XX2015,12,02XX
 
probier mal bitte

WHERE eingetragenDatum LIKE "2015%"

und wenn das was ausgibt, dann erweitere es auf 2015, dann 2015,12 etc und schau ab wann es nicht mehr geht.

Gruß

Claus
 
Hol dir mal das SQLite Studio, das ist ein DatabaseExplorer für SQLite.
Verbinde dich zu deiner SQLite DB und versuche mal im Studio das Statement abzusetzen und kontrolliere das Ergebnis.
 
so. nach langem hin und her, läuft das ding plötzlich... jetzt fragt mich aber bitte nicht, welche Änderung das bewirkt hat. wahrscheinlich die Summe eurer Ratschläge, für die ich euch allen Danke.

Viele Grüße

Jens
 

Zurück
Oben