Ich habe ein Textfeld, das ein Datum ist, obwohl es manchmal auch die Zeit Komponente hat. Ex:Oracle 10g - Entfernen Zeit Komponente
"23/1/1999"
"25/2/2003 05:18:00"
Nun, ich möchte sie einfach und Reihenfolge der Datumskomponente abfragen nur. Mein Versuch
TO_DATE(
TO_CHAR(
TO_DATE(mytextfield , 'DD-MM-YYYY HH:MI:SS')
,'DD-MM-YYYY')
,'MON-YYYY')
Die oben nicht auf der äußeren TO_DATE (ORA-01843 ungültig Monat.)
TO_CHAR(
TO_DATE(mytextfield , 'DD-MM-YYYY HH:MI:SS')
,'DD-MM-YYYY')
Die oben genannten Arbeiten, aber ich bin mit einem String links, kein Datum.
-------- Lösung akzeptierte Antwort mit
Gerade
EXTRACT(MONTH FROM TO_DATE(timetable.string_time) , 'DD-MM-YYYY HH24:MI:SS'))
EXTRACT(YEAR FROM TO_DATE(timetable.string_time) , 'DD-MM-YYYY HH24:MI:SS'))
verwenden Wie auf der Antwort angegeben, können Sie die Reihenfolge Sie es in der ORDER BY verwenden tauschen und in der AUSWAHL.
Benötigen eine kleine Zahlenformatierung für den Monat, und einige Konkatas, aber das funktioniert sehr gut.
+1, aber ich wette, dass das 'HH'' HH24' sein muss. – ruakh
Sie haben Recht. Korrigiert. – Anonymous
Aber heiß, um das Datum, nach TRUNC, in ein MON-YYYY-Format zu ändern? Ich schaffe es nicht. –