Ihre Anfrage ist derzeit ungültig, wie to_char eine number
oder date
erwartet, aber die offene Zahl 01-04-2016
Passt nicht auf eine dieser darstellen.
Der Nachfolger erwähnte in Ihrem Kommentar to_char(01042016,'mm')
nicht funktionieren entweder, wie die gegebene Zahl mit mm
analysiert werden kann nicht, da es eine gültigen numberFormat
und nicht ein dateFormat
nicht erwarten, die mm
isn't.
Damit Ihre Abfrage, wickeln Sie das reine Datum in eine to_date
und erwähnen den aktuellen dateFormat
durch die char
gegeben arbeiten:
SELECT decode(to_number(to_char(to_date('01-04-2016', 'dd-mm-yyyy'), 'mm')),
1,
to_number(to_char(to_date('01-04-2016', 'dd-mm-yyyy'), 'yyyy')) - 1,
2,
to_number(to_char(to_date('01-04-2016', 'dd-mm-yyyy'), 'yyyy')) - 1,
3,
to_number(to_char(to_date('01-04-2016', 'dd-mm-yyyy'), 'yyyy')) - 1,
to_number(to_char(to_date('01-04-2016', 'dd-mm-yyyy'), 'yyyy')))
FROM DUAL;
'01-04-2016' isn't eine gültige Nummer. 'to_char' erwartet entweder ein' date' oder eine 'number'. und dieser Wert repräsentiert keines von beiden – SomeJavaGuy
, aber ich habe bereits to_char (01042016, 'mm') gegeben, aber der gleiche Fehler zeigt –
@NirmalyaRoykarmakar yeah, weil Sie versuchen, eine Zahl mit einem Datumsformat zu parsen, das nicht funktioniert. t arbeiten. – SomeJavaGuy