SQL-Datum conversion-Ergebnisse zu "invalid number format" - Modell-parameter."

Ich select einige Daten aus Oracle 11g Datenbank, aber ich kann nicht scheinen, um herauszufinden, warum folgende select Abfrage fehlschlägt:

SELECT
  INFO_ID,
  INFO_DETAIL, 
  IMPORTANT_FLG, 
  DELETE_FLG, 
  CREATE_TIME, 
  DISPLAY_ORDER
  FROM  TABLE_NAME
  WHERE TO_DATE(TO_CHAR(CREATE_TIME, 'YYYY/MM/DD'), 'YYYY/MM/DD')
  BETWEEN TO_DATE(TO_CHAR(:fromDate, 'YYYY/MM/DD'), 'YYYY/MM/DD') AND TO_DATE(TO_CHAR(:toDate, 'YYYY/MM/DD'), 'YYYY/MM/DD')
  ORDER BY IMPORTANT_FLG DESC NULLS LAST , DISPLAY_ORDER ASC NULLS LAST, CREATE_TIME DESC, INFO_ID ASC

Die Abfrage fehlschlägt, mit der folgenden Fehlermeldung:

ORA-01481: invalid number format model
01481. 00000 -  "invalid number format model"
*Cause:    The user is attempting to either convert a number to a string
       via TO_CHAR or a string to a number via TO_NUMBER and has
       supplied an invalid number format model parameter.

Meine Eingabe für die Variablen fromDate und toDate sind nur Datumsangaben wie 20111010 etc. Ich habe auch versucht mehr bestimmten Zeit (Gleiches format wie in der Tabelle), aber das scheint nicht das problem zu sein..

In der Datenbank der CREATE_TIME Spalte ist TIMESTAMP(6) geben, und zum Beispiel ein Beispiel ist 2011/12/19 08:04:42

Irgendwelche Ideen, warum dieser Fehler auftaucht?

Ich weiß nicht, PL/SQL (Oracle), aber Sie sollten in der Lage sein, um die Verwendung der ISO-8601 (yyyy-MM-dd) als format. Haben Sie versucht, mit Bindestrichen anstelle von Schrägstriche?
danke für die Anregung. Leider bekomme ich denselben Fehler auch schon mit Bindestrichen (ich habe versucht: ohne Bindestriche als Eingabe mit Bindestrichen als Eingabe, und auch die Striche für die TO_CHAR-parameter)
TO_CHAR(:fromDate, 'YYYY/MM/DD') ist falsch. Sie konvertieren eine ZAHL in STRING, vorausgesetzt, es DATE. 20111010 ist kein DATUM, es ist eine ZAHL. Auch '20111010' ist kein DATUM, es ist ein STRING. Sie sind völlig anders.

InformationsquelleAutor julumme | 2015-11-13

Schreibe einen Kommentar