sql Statement

T

tsaG

Gast
Hallo,

ich bin am verzweifeln mit meinem sql statement...

Java:
            java.sql.ResultSet r3 = s3.executeQuery("Select  count(*) from Tabelle1 where Datum between '"+jTextField1.getText()+"' and '"+jTextField2.getText()+"'and Bezug = 'Markt1'");


Meine Datenbank hat 2 Spalten, Datum und Bezug.
Jetzt moechte ich durch zwei Textfelder siehe select die häufigkeit von Markt1 innerhalb diesen gewählten Zeitraums wiedergegeben haben. Der obige Select bringt mir zwar eine Zahl, jedoch stimmt diese nicht mit dem tatsächlichen Wert überein.

Hat jemand hierfür eventuell einen tipp?
 

Fab1

Top Contributor
In welchem Format wird denn das Datum übergeben? Ansonsten teste mal "yyyy-MM-dd" z.B. "2012-01-01"

Was anderes fällt mir momentan auch nicht ein.
 
C

Camino

Gast
Was für ein Wert kommt denn raus? Kannst du da irgendwas erkennen, was zusammengezählt wurde? Kommt immer der gleiche Wert raus, egal, was für eine Datumsspanne eingegeben wird?

Was mir aufgefallen ist (keine Ahnung, ob das fehlerhaft ist)
Java:
"+jTextField2.getText()+"'and Bezug
Ich würde zwischen dem ' und dem and ein Leerzeichen machen.

Ansonsten fällt mir nur ein, mal schauen, in welchem Format das Datum in der Datenbank steht und ob das mit den Strings aus den Textfeldern übereinstimmt.
 

turtle

Top Contributor
Ich würde den Befehl in einem SQL Client (z.B. Squirrel) probieren und schauen, was da raus kommt. Ausserdem hast Du wohl noch nicht erwähnt um welche Datenbank es sich handelt.

SQL:
Select Datum, Bezug from Tabelle1 where Datum between '<Datum1>' and '<Datum2>' and Bezug = 'Markt1'
 
T

tsaG

Gast
Es handelt sich hierbei um eine simple Access Datenbank.

Was ich rausfand ist, dass wenn die Zeitspanne z.B. von 28.07.2012 bis 28.07.2012 ist er den richtigen wert wiedergibt. Jedoch wenn ich von 28.07.2012 bis 29.07.2012 aufrufen will, gibt er mir falsche Werte.
 
C

Camino

Gast
Was heisst falsche Werte? Wieviele Datensätze sollten gezählt werden und wieviele werden tatsächlich angegeben? Hast du dir mal ein Datum ausgeben lassen, um das Format zu überprüfen? Du könntest anstatt des count auch mal alle Datensätze (Datum, Bezug) abfragen und anzeigen lassen, vielleicht lässt sich dann genauer schauen, was der SQL-Befehl findet und wo der Fehler liegt.
 
T

tsaG

Gast
Das Problem erkläre ich mir folgendermassen: In diesem Projekt sind anscheinend alle Datumswerte in der Datenbank als String (Textformat) in der AccessDatenbank gespeichert. Kann es sein, dass er somit nichts mit dem Between anfangen kann, da er ja eig. nicht weiss, dass das ein Datum ist?

In der Datenbank kann ich das Format umstellen.

In welches Format muss ich dann nun den Text aus dem Textfeld umformatieren?
Wenn ich den String im Textfeld lass und die generierung starte geht er mir in meinen Exception block.
 
C

Camino

Gast
Das Problem erkläre ich mir folgendermassen: In diesem Projekt sind anscheinend alle Datumswerte in der Datenbank als String (Textformat) in der AccessDatenbank gespeichert. Kann es sein, dass er somit nichts mit dem Between anfangen kann, da er ja eig. nicht weiss, dass das ein Datum ist?

Ja vermutlich, das hört sich auf jeden Fall plausibel an...

In der Datenbank kann ich das Format umstellen.

Wie umstellen? Nachträglich den Typ der Spalte ändern? Oder das Ausgabeformat ändern? Vermutlich gibt es auch eine Möglichkeit in deinem SQL den String in ein Datum umzuwandeln. Musst du vielleicht mal im Internet nach Lösungen suchen. Hab bei Google
Code:
access datum string vergleichen
eingegeben und es kamen da gleich ein paar Seiten, die sich nach ähnlichem Problem angehört hatten.
 
T

tsaG

Gast
ich hab nun mal versucht meine Eingaben in das Textfeld in ein Datum umzuwandeln mein Code sieht folgendermassen aus:

Java:
String str_date=jTextField1.getText();
                     DateFormat formatter ; 
                     Date date ; 
                      formatter = new SimpleDateFormat("dd.MM.yyyy");
                      date = (Date)formatter.parse(str_date);  
                     


try{
                java.sql.Statement s = conn.createStatement();
                java.sql.ResultSet r = s.executeQuery("Select  count(*) from Abfrage1 where Ausdr1 between '"+date+"' and '"+date1+"' and Bezug = 'Markt1'");
                while (r.next()) {
                    String str45 = r.getString(1);
                   Table5.getModel().setValueAt(new Integer(str45),1,1);
               }
               }catch (Exception e){      
                    
            }


Zudem habe ich in der Access Datenbank die als String gespeicherten Datumsangaben mit einer Abfrage durch die Funktion Datwert in ein Datum (Datentyp) umgewandelt.

Die Datumswerte sind anscheinend nicht miteinander vergleichbar. Er bringt mir immer als Wert 0....
 

mla.rue

Bekanntes Mitglied
Datenbanken haben zig MÖglichkeiten ein Datum zu formatieren (big, middle, litlte endian, jahr vierstellig, vorangestellte 0 bei einstelligen Tagen/Monaten). Wenn du es bei der "konvertierung" von Zeichenkette zu Datumtyp nicht explizit angibst, musst du schauen, was Access per default macht.

Ich habe mir angewöhnt Datum als int zu speichern in dem Format yyyymmdd, das haut dann immer hin und ich muss mir keine Gedanken über eventuelle Einstellungen der DB bzw OS machen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T SQL-Statement Datenbank nach SQL Statement schließen? Datenbankprogrammierung 7
Kotelettklopfer SQLite Verhindern von doppelter Statement Ausführung Datenbankprogrammierung 25
L SQL-Statement SQL Statement doppelte Einträge finden Datenbankprogrammierung 9
C MySQL SQL Statement wir nicht ausgeführt Datenbankprogrammierung 11
G Datenbank Statement Datenbankprogrammierung 22
Dimax Erstellen ResultSet und Statement Datenbankprogrammierung 30
B MySQL Umkreissuche - brauche Hilfe bei SQL Statement Datenbankprogrammierung 12
M CSV Import - Dynamisches SQL Statement Datenbankprogrammierung 15
D Wiederverwendung / Recycling / Queuing von Statement Objekten Datenbankprogrammierung 1
D SQL Statement gesucht... Datenbankprogrammierung 15
J JDBC SQL Statement mit Parameter Datenbankprogrammierung 7
F Dynamischen String in SQL Statement einbinden Datenbankprogrammierung 9
L SQL Statement mit Switch-Case funktioniert nicht Datenbankprogrammierung 6
U PostgreSQL SELECT Statement Datenbankprogrammierung 5
A Problem mit Create-Statement Datenbankprogrammierung 9
LadyMilka MySQL Syntaxfehler im Statement Datenbankprogrammierung 3
A JDBC Prepared Statement Autoincrement Datenbankprogrammierung 3
P SQL-Statement Bei meinem Statement ist ein Fehler? Datenbankprogrammierung 2
P sql statement alter table foreign key Datenbankprogrammierung 4
B JDBC MySQL Statement Datenbankprogrammierung 3
A Sql Statement - Alle Zahlen größer 9 Datenbankprogrammierung 3
F Sql Statement Datenbankprogrammierung 12
A SQL-Statement prüfen Datenbankprogrammierung 3
W Statement als Klassenvariable Datenbankprogrammierung 27
I Select-Statement optimieren Datenbankprogrammierung 14
D SQLite Statement nimmt keine Namen aus getter-Methoden Datenbankprogrammierung 11
alex_fairytail MySQL SQL Statement Delete zwischen Datum1 und Datum2 Datenbankprogrammierung 5
M Access Update Statement Fehler update -> unmöglich? Datenbankprogrammierung 3
R Derby/JavaDB LIKE Statement mit Wildcard Datenbankprogrammierung 20
N Update Prepared Statement Fehler bei Argumenten Datenbankprogrammierung 3
R Select Statement als temporärer Table Datenbankprogrammierung 7
R Derby/JavaDB Select Statement Where bedingung will nicht ganz! Datenbankprogrammierung 4
R Derby/JavaDB Select TOP Statement geht nicht Datenbankprogrammierung 3
S Null Pointer exception statement Datenbankprogrammierung 8
R Derby/JavaDB Insert Statement Probleme Datenbankprogrammierung 14
K statement.execute liefert false Datenbankprogrammierung 6
C PostgreSQL Prepared Statement Datenbankprogrammierung 7
N Prepared Statement mit unbekannter Anzahl von Where-Clauses Datenbankprogrammierung 30
S SQL Statement: executeUpdate Datenbankprogrammierung 15
F wie funktioniert if Statement in SELECT? Datenbankprogrammierung 2
T MySQL PreparedStatement mit INSERTs langsam, Batch-Statement auch Datenbankprogrammierung 4
M MySQL größere von zwei Zahlen in Update Statement Datenbankprogrammierung 2
J [Hibernate] Select Statement Datenbankprogrammierung 4
S HSQLDB DELETE-Statement funktioniert nicht Datenbankprogrammierung 4
L MySQL Prepared Statement batch langsamer als bulk insert? Datenbankprogrammierung 10
L MySQL Kann Statement nicht erzeugen Datenbankprogrammierung 5
T Komme mit dem SQL Statement nicht weiter Datenbankprogrammierung 5
D MySQL Client - Server: Client verabschiedet sich sobald ich Variablen im SQL Statement verwende Datenbankprogrammierung 9
F Frage zu Prepared Statement Datenbankprogrammierung 2
T java.sql.SQLException: unexpected end of statement Datenbankprogrammierung 2
J SQL-Statement Datenbankprogrammierung 10
U MSSQL Verbindung steht, aber meckert beim Statement Datenbankprogrammierung 2
S executeBatch result immet mit Statement.SUCCESS_NO_INFO Datenbankprogrammierung 4
G Frage zum Insert-Statement Datenbankprogrammierung 2
J JDBC- Statement Ausführung nicht persistent Datenbankprogrammierung 2
A Connection Variable in anderer Klasse verwenden -> statement Datenbankprogrammierung 2
D Problem: Prepared Statement (Insert) funktioniert nicht. Datenbankprogrammierung 3
G Mit Prepared Statement in MDB schreiben Datenbankprogrammierung 7
Z DELETE-Statement Datenbankprogrammierung 6
W Prepared Statement und Verbindungsverlust Datenbankprogrammierung 4
G INSERT-STATEMENT Datenbankprogrammierung 6
alexpetri hsql statement problem Datenbankprogrammierung 3
W invalid sql statement ? Datenbankprogrammierung 3
S Probleme mit statement.close() Datenbankprogrammierung 10
G Wie ein SQL-Statement zusammensetzen? Datenbankprogrammierung 5
T Select Statement auf Relation Datenbankprogrammierung 3
S Connection/Statement/ResultSet auf einmal geschlossen Datenbankprogrammierung 8
G MsSQL | Statement.execute(String s) Datenbankprogrammierung 3
W Prepared Statement mehrere Zeichenketten Datenbankprogrammierung 4
G Keine Aussicht mit Prepared Statement Datenbankprogrammierung 10
G Für jede SQL-Abfrage eigenes Statement und ResultSet? Datenbankprogrammierung 3
C Statement/Connection SQLWarning Datenbankprogrammierung 4
J sql-statement Datenbankprogrammierung 7
G Update Statement automatisch unterteilen lassen Datenbankprogrammierung 3
P Prepared Statement scheint nicht zu funktionieren Datenbankprogrammierung 14
T SQL-Statement parser? Datenbankprogrammierung 11
N Prepared Statement Datenbankprogrammierung 8
G Problem mit Suchen Statement Java und MS-SQL-Server Datenbankprogrammierung 9
J SELECT-Statement Datenbankprogrammierung 4
S Statement.getGeneratedKeys() funktioniert nicht Datenbankprogrammierung 4
G Problem mit Delete-Statement Datenbankprogrammierung 3
L mehrere Abfragen mit einem Statement!? Datenbankprogrammierung 5
E Problem mit create-Statement Datenbankprogrammierung 5
E SQL-Statement um eine Nummer in der Datenbank zu suchen Datenbankprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben