Verwendung von java.sql.Objekt Timestamp in einer sql-Abfrage
Ich versuche eine Abfrage ausführen, die in java verwendet java.sql.Objekt Timestamp als Datum zu vergleichen mit den in der where-Klausel.
Hier ist, wie die Abfrage-Zeichenfolge, die erstellt wird in Java
String getTransactionsSQL = "Select transaction_seq " +
"From transactions ct " +
"Where id = 'ABCD'" +
"And ct.out_msg_timestamp" +
"<= to_date('" + parseDate.getTimeStamp() +"','YYYY-MM-DD HH:MI:SS..')" +
"order by transaction_seq";
Die Aussage parseDate.getTimeStamp()
gibt eine java.sql.TimeStamp
Objekt, das ein Datum enthält. Hier ist ein Beispiel für die Ausgabe des System.out.println(parseDate.getTimeStamp());
2011-03-07 05:47:57.0
Wenn ich den obigen Abfrage bekomme ich diesen Fehler
java.sql.SQLException: ORA-01843: not a valid month
Irgendwelche Hinweise?
- Was ist der Oracle-Datentyp ct.out_msg_timestamp?
- Seine ein 'Datum' - Feld.
- Verwandte: stackoverflow.com/questions/3323618/...
- Brillante Dank. Ich habe es geändert zu verwenden, PreparedStatement und SetTimeStamp.
InformationsquelleAutor ziggy | 2011-03-10
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden PreparedStatement: http://download.oracle.com/javase/6/docs/api/java/sql/PreparedStatement.html
Verwenden Sie niemals die string-Verkettung übergeben Streit um SQL-Befehle (Sicherheit-Risiko: SQL-injection)!
preparedStatement.setTimeStamp(index, timeStamp);
.