Java SQL Statement (Vergleich von 2 Datumsangaben)

chefkochen

Grünschnabel
hy

Ich habe ein Problem bei einer Datenbankabfrage innerhalb einer Java Applikation.
In einer Abfrage wird ein Datum zweimal geprueft, mit folgender Syntax:

SELCT ...
FROM ...
WHERE ...
...
AND '2007-10-26' BETWEEN Tabelle1.Datum_von AND Tabelle1.Datum_bis
AND '2007-10-26' BETWEEN Tabelle2.Datum_von AND Tabelle2.Datum_bis;


Bei der Ausführung innerhalb einer Java Applikation bekomme ich nur 1 anstatt 2 Ergebnissen:
- Der Code ist korrekt in Java implementiert
- Die Java Syntax ist korrekt (andere Abfragen funktionieren)
- Beim Ausführen des Befehls in der Konsole gibt es keine Probleme!!
- Also 1:1 der identische String!!

Meine Vermutung ist, das es an dem aneinader gereihten Vergliche der Datumsangaben liegt.
Kennt jemand solch ein Problem?

gruss
alex
 
Also so ich wie ich dich nun verstanden habe, bekommst du wenn du das SQL Statement über die Konsole aufrufst 2 Ergebnisse zurück (wie es auch sein sollte).
Wenn du das Statement allerdings unter Java aufrufst bekommst du nur 1 Ergebnis zurück, ist das richtig?

Ansonsten können wir schlecht sagen, was falsch läuft, wenn du uns nicht ein wenig Codeauschnitte zeigst.
 
Also so ich wie ich dich nun verstanden habe, bekommst du wenn du das SQL Statement über die Konsole aufrufst 2 Ergebnisse zurück (wie es auch sein sollte).
Wenn du das Statement allerdings unter Java aufrufst bekommst du nur 1 Ergebnis zurück, ist das richtig?
korrekt!

Der Code sieht folgendermassen aus:
Code:
private static Connection m_Con = null;
private static Statement m_Stmt = null;
private static ResultSet m_ReSet = null;

...

m_Stmt = m_Con.createStatement();
m_ReSet = m_Stmt.executeQuery(
"SELECT Tabelle1.ID_Tabelle1 "+
	"FROM Tabelle1 " +
	" WHERE Tabelle1.ID_Tabelle1 = '12345' " +
	" AND Tabelle1.Status = true "+
	" AND '2007-10-26' BETWEEN Tabelle1.Datum_von AND Tabelle1.Datum_bis "+
	" AND '2007-10-26' BETWEEN Tabelle2.Datum_von AND Tabelle2.Datum_bis;"
);

while ( m_ReSet.next() )
{
	liResult.add(m_ReSet.getString(1));
}	
m_ReSet.close();
m_Stmt.close();
m_Con.close();
m_IsConnected = false;
 
Zurück