JDBC - ORA-01861: literal does not match format string 01861
Ich habe ein problem mit dem abrufen von Daten aus einer oracle-Datenbank
Ich möchte Zugriff auf die Daten durch die Verwendung von zwei JDatechoosers
...
Ich benutze JDatechooser
zum speichern von Datum-Wert in der Datenbank vom Typ Datum.
chooser=new JDateChooser();
chooser.setBounds (200, 175, 175, 25);
chooser.setDateFormatString("dd-MM-yyyy");
pstmt.setDate(5, new java.sql.Date(chooser.getDate().getTime()));
Ich für den Zugriff auf Daten zwischen zwei Datumsangaben mit zwei JDatechooser
Werte als Brache..
chooser = new JDateChooser();
chooser.setBounds (100, 15, 100, 25);
chooser.setDateFormatString("dd-MM-yyyy");
chooser.addFocusListener (this);
chooser1 = new JDateChooser();
chooser1.setBounds (220, 15, 100, 25);
chooser1.setDateFormatString("dd-MM-yyyy");
chooser1.addFocusListener (this);
ResultSet rs = st.executeQuery("SELECT * FROM Bill WHERE B_DATE BETWEEN '"+new java.sql.Date(chooser.getDate().getTime())+"' AND '"+new java.sql.Date(chooser1.getDate().getTime())+"' ");
Bekomme ich die Fehlermeldung wie
SQL Error: ORA-01861: literal does not match format string 01861
bitte helfen Sie mir dieses Problem zu lösen
InformationsquelleAutor Durga Prasad | 2017-03-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nie passieren DATE-oder TIMESTAMP-Werte als Zeichenfolgen.
Verwenden
PreparedStatement
und übergeben eine Instanz vonjava.sql.Date
oderjava.sql.Timestamp
So dass Sie keine sorgen über die Formatierung von einem Datum oder Zeitstempel-Wert.
Als Oracle
DATE
ist eigentlich ein timestamp, könnten Sie besser dran mit einem timestamp-Wert.nur teilweise. Es geht auch um die Weitergabe richtigen Datentypen, und damit die Vermeidung der bösen implizite Datentyp-Konvertierung und es geht um die Leistung, da prepared statements vermeiden Sie harte Parsen auf dem server.
Ich bin damit einverstanden. Die Speicherung oder Behandlung von Daten, die als string hat zu einer meiner top-pet peeves.
InformationsquelleAutor a_horse_with_no_name
Aus der dba-oracle.com
So erhalten Sie diese Fehlermeldung, da das format der Datum ist nicht korrekt, ich schlage vor,, um [
TO_DATE
][3] :Andere Sache, die Sie haben zu verwenden PreparedStatement zu setzen, Ihre Werte, zum Beispiel :
InformationsquelleAutor YCF_L
Wann immer Sie wollen, Legen Sie ein Datum einfügen, es mit Hilfe der PrepareStatement Klasse, denn das hat im eingebauten Funktion zum konvertieren von java.util.Datum (eine ganze timestamp mit Namen und Nummer )---->konvertieren Sie es in java.sql.Datum(2018-09-06-format) und dann verwenden Sie diese sql-Datum um preparedStatement ps.setDate(format : 09-jan-1996), die akzeptabel ist, die von oracle.
Hinweis: während der Konvertierung util date, sql date Zeitvertreib ist nicht das ganze Datum.
InformationsquelleAutor siddharth chaudhary