Oracle Datumsformat vergleichen

hans-sonny

Bekanntes Mitglied
So noch ein kleines Problem hab ich ...

und zwar muss ich überprüfen ob eine Ferien wohnung im angegebenen zeitraum frei ist.

ich ruf dazu das anreise und abreise datum aus der db ab und speicher es in zwei stirngs

dann les ich das datum gewünschte datum ein und speicher es ebenfalls in zwei strings


ist das dann sinnvoll über equals zu checken?


oder wie würdet ihr das machen



find es noch nicht sooo gut wen z.B. die wohnung vom 01.05-03.05 belegt ist

und das eingegebene anreise datum = 01.05 ist meckert es aber wenn es 02.05 wäre dann würde equals das nicht merken ...


jemand ne gute idee?
 

The_S

Top Contributor
Warum in zwei Strings? Speichere es doch in Calendar-Objekten. Da kannst du dann auch schön mit before() und after() arbeiten. Das Eingabedatum kannst du bspw. über DateFormat parsen.
 
S

SlaterB

Gast
falls es doch irgendwie um Strings geht, ist auf jeden Fall zu beachten, die Reihenfolge umzustellen,

mit Jahr.Monat.Tag, und natürlich führenden 0en bei einstelligen Tagen/ Monaten, z.B. 2010.04.20,
kann man Date-Strings wunderbar als String vergleichen/ sortieren,

andersrum hat man erst alle Monatsersten usw.
 

hans-sonny

Bekanntes Mitglied
Java:
out.printf("\nAbreisedatum (Form: DD-MM-YYYY): ");
        abreise = EINGABE.next();
        
        //----------------------------------------------------------------------
        //Buchungen der Ferienwohnung abfragen
        //Check ob Ferienwohnung im angegebenen Zeitraum frei ist
        ANREISE = stmt.executeQuery("SELECT Anreisedatum, Abreisedatum FROM Belegung WHERE Wohnungsnummer =" + objektnummer +"AND Anreisedatum =" + anreise +"And Abreisedatum =" +abreise);
        while(ANREISE.next()){
            count++;
        }
        
        if(count != 0){
            out.println(count);
        }


ich Probiere es so ... bekomme aber die fehlermeldung: Exception in thread "main" java.sql.SQLException: ORA-00932: Inkonsistente Datentypen: DATE erwartet, NUMBER erhalten


das verstehe ich aber nicht ... anreise und abreise sind strings ...

müssen die date format haben?

wenn ja wie les ich das ein und wie leg ich eine variable vom dateformat an?
 

The_S

Top Contributor
Verwende PreparedStatements (dazu solltest du bei der Suche genügend Beispiele finden. Falls es trotzdem Probleme gibt, einfach noch einmal nachfragen) mit setDate. Dann kommt es gar nicht erst zu solcher Problematik, mit dem positiven Nebeneffekt, SQLInjection zum Großteil zu verhindern.
 

hans-sonny

Bekanntes Mitglied
hab es so versucht:

Java:
//----------------------------------------------------------------------
        //Buchungszeitraum einlesen
        out.printf("\nAnreisedatum (Form: DD-MM-YYYY): ");
        anreise = EINGABE.next();
        
        out.printf("\nAbreisedatum (Form: DD-MM-YYYY): ");
        abreise = EINGABE.next();
        
        
        //Datum Parsen
        Date von = new Date();
        Date bis = new Date();

        SimpleDateFormat sdf = new SimpleDateFormat ("DD-MM-YYYY");
  
        von = sdf.parse(anreise);
        bis = sdf.parse(abreise);
        
        //----------------------------------------------------------------------
        //Buchungen der Ferienwohnung abfragen
        //Check ob Ferienwohnung im angegebenen Zeitraum frei ist
        ANREISE = stmt.executeQuery("SELECT Anreisedatum, Abreisedatum FROM Belegung WHERE Wohnungsnummer =" + objektnummer +"AND Anreisedatum =" + von +"And Abreisedatum =" + bis);
        while(ANREISE.next()){
            count++;
        }
        
        if(count != 0){
            out.println(count);
        }


bekomme jetzt die fehlermeldung


Exception in thread "main" java.lang.IllegalArgumentException: Illegal pattern character 'Y'
 
S

SlaterB

Gast
Y ist für SimpleDateFormat nicht erlaubt, das bedeutet die Fehlermeldung, falls das die Frage ist,

ist es zuviel verlangt, die Bedienungsanleitung der Klasse zu lesen oder irgendein funktionierendes Beispiel auf der Welt (im Internet) zu finden?
 

hans-sonny

Bekanntes Mitglied
also es muss mit kleinem y sein ...


aber jetzt bekomm ich die Fehlermeldung

Exception in thread "main" java.sql.SQLException: ORA-00933: SQL-Befehl wurde nicht korrekt beendet
 
S

SlaterB

Gast
bevor ich auch hier die Lösung direkt erwähne wenn es nicht nervt eine Vorstufe:
gib dir den zusammengebauten SQL-String aus, fällt dir dabei etwas auf?

kannst du ihn in andere DB-Tools eintippen, kannst du testweise weniger Where-Bedingungen verwenden/ sonstwie die Anfrage vereinfachen?

----

bei jeder Frage hier im Forum wäre es eigentlich besser vorher zu überlegen was du selber dazu beitragen kannst,
du kannst doch nicht jeweils schon komplett am Ende aller Möglichkeiten stehen?

auf eigenes Denken zu verzichten und allein schneller von anderen die Lösung zu holen ist ganz schön gefährlich..

------

> also es muss mit kleinem y sein ...

bei manchem wie m/M sind sogar beide Varianten erlaubt und haben unterschiedliche Bedeutung..
 
Zuletzt bearbeitet von einem Moderator:

hans-sonny

Bekanntes Mitglied
nein ich suche keine fertige lösung^^ ...

nur unterstützung ... kennt ihr das nicht dass ihr ewig den code anschaut und selber den fehler nicht mehr findet? ...


nein ich kann die SQL abfrage nicht vereinfachen...

ich seh den Fehler nicht in der SQL abfrage ...

und das dumme ist dass ich hier gerade in Italien bin und 4€/h fürs Internet zahlen muss und kein VPN geht ... d.H. ich muss über teamviewer auf den pc daheim damit ich alles testen kann^^ ... lächerilch oder?



naja wo liegt denn bei der SQL abfrage der Hund begraben? ...
 

Deros

Bekanntes Mitglied
wie würdest du denn sonst einen string entsprechend zusammenbauen? da fehlen doch einfach nur leerzeichen wo ist das problem?
 

hans-sonny

Bekanntes Mitglied
Java:
ANREISE = stmt.executeQuery("SELECT Anreisedatum, Abreisedatum FROM Belegung WHERE Wohnungsnummer =" + objektnummer +" AND Anreisedatum =" + von +" AND Abreisedatum =" + bis);

ja wo denn ... hab noch leerzeichen rein gemacht .... aber immer noch selber fehler ...

SQL befehl wird nicht korrekt abgeschlossen



// Hat sich geklärt ... läuft nun ...

danke für eure hilfe
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Datumsformat auf DD.MM.YYYY ändern Datenbankprogrammierung 2
D Datumsformat aus MySQL ändern Datenbankprogrammierung 15
T Datei import und Datumsformat Datenbankprogrammierung 4
M Datumsformat Postgres Datenbankprogrammierung 6
M Datumsformat stimmt nicht Datenbankprogrammierung 5
C zwei Strings vergleichen Datenbankprogrammierung 13
L CSV Datei mit DB Inhalt vergleichen Datenbankprogrammierung 20
L MySQL Vergleichen von Array-Inhalt, Ausgabe gleicher Daten Datenbankprogrammierung 3
S MySQL Datenbankabfrage mit Eingabe aus Textfeld vergleichen Datenbankprogrammierung 4
MaxG. Datenbank werte vergleichen Datenbankprogrammierung 5
C Datenbankeinträge vergleichen Datenbankprogrammierung 16
V SQLite 2 Tabelle vergleichen und alle unterschiede rausgeben Datenbankprogrammierung 1
V SQLite 2 Tabellen vergleichen und nur Unterschiedliche Sätze rausgeben. Datenbankprogrammierung 31
Paul15 Tabelle vergleichen Datenbankprogrammierung 15
ruutaiokwu sql server 2008 stored procedures automatisiert vergleichen Datenbankprogrammierung 2
P Listen Vergleichen JPA Criteria Datenbankprogrammierung 2
K Zwei Datenbanken miteinander auf Unterschiede vergleichen Datenbankprogrammierung 2
T 2 Tabellen aus 2 Datenbanken miteinander vergleichen Datenbankprogrammierung 6
I DB-Zelleninhalt mit String vergleichen klappt nicht Datenbankprogrammierung 3
H SQL Abfrage - zwei tabellen vergleichen. Datenbankprogrammierung 2
Gossi Oracle 2 Daten (Datum) vergleichen Datenbankprogrammierung 6
C SQL String zwei Tabellen vergleichen und gleiche Zeile löschen Datenbankprogrammierung 25
J Daten vergleichen Datenbankprogrammierung 10
S Daten einer Tabelle vergleichen und ggs neuen Wert einfügen Datenbankprogrammierung 8
N Zwei Spalten und Ihre Werte vergleichen Datenbankprogrammierung 3
M Strings vergleichen Datenbankprogrammierung 8
E Vergleichen von datetime mit GregorianCalender-Werte Datenbankprogrammierung 6

Ähnliche Java Themen

Neue Themen


Oben