Eine Spalte enthält den Namen einer speziellen Art von Dateien, die wie folgt benannt sind: "kontrolrapport-2015.12.23-10.19.05.pdf". Ich möchte das Datum extrahieren, das ist "2015-12-23 10:19". Ich dachte, es wäre ein Stück Kuchen, aber es dauert ein bisschen mehr, als ich herausfinden kann.
Dies ist, wie weit ich
select 'kontrolrapport-2015.12.23-10.19.05.pdf' as file_name, regexp_replace('kontrolrapport-2015.12.23-10.19.05.pdf','(\w*)-', '') as date_like from dual;
Oracle Regexp - formatieren Sie eine Zeichenfolge zu Datum-ähnliche Informationen
Antwort
Basierend auf Ihrem Beispiel regex, Ich gehe davon aus, dass ein variabler Präfix in Ihrem Dateinamen gefolgt von einem Bindestrich, gefolgt von Datum, gefolgt von Zeit und dann eine Dateierweiterung.
Hier ist die regex ich jedes Stück Information zu extrahieren verwendet -
with f as (SELECT 'kontrolrapport-2015.12.23-10.19.05.pdf' AS file_name,
'([^-]+)-([0-9\.]+)-([0-9\.]+)\.([a-z]+)' AS regex
FROM DUAL)
select f.file_name,
regexp_substr (f.file_name, f.regex, 1, 1, 'i', 1) as prefix_part,
regexp_substr (f.file_name, f.regex, 1, 1, 'i', 2) as date_part,
regexp_substr (f.file_name, f.regex, 1, 1, 'i', 3) as time_part,
regexp_substr (f.file_name, f.regex, 1, 1, 'i', 4) as file_extension
from f;
Beginnen Sie mit diesem und vielleicht auf sie weiter zu verbessern. Ich würde [a-z]
und [0-9]
mit POSIX-Klassen ersetzen.
bekommen Warum Sie substr und to_date Funktionen nicht verwenden it'easier
TO_DATE (Substr (Dateiname, 13,15), 'yyyy.mm.dd-hh24. mi ')
Rückreisedatum
Ich mag es, es einfach zu halten. Unter diesem Gesichtspunkt ist Ihr Vorschlag sehr nützlich. Aber ich suche nach etwas, das für kleinere Varianten des Dateinamens robust sein wird, was meines Erachtens ein Problem mit dem substr-Ansatz sein wird. Aber danke für deine Zeit! –
würde Wenn das Format vorhersehbar ist, könnten Sie tun:
select to_date(substr('kontrolrapport-2015.12.23-10.19.05.pdf', 16,19), 'YYYY.MM.DD-HH.MI.SS') from dual;
oder sogar
select to_date(replace(replace('kontrolrapport-2015.12.23-10.19.05.pdf', 'kontrolrapport-',''),'.pdf','') , 'YYYY.MM.DD-HH.MI.SS') from dual;
und wenn Sie es als String angegeben in Ihrer Frage wollen, wie etwa eine der oben in einem to_char wie umfassend:
select to_char(to_date(substr('kontrolrapport-2015.12.23-10.19.05.pdf', 16,19), 'YYYY.MM.DD-HH.MI.SS'), 'YYYY-MM-DD HH:MI')
Ich schätze die substr-Einfachheit, aber wie du schreibst: Das Format ist vielleicht nicht 100% vorhersehbar, also gehe ich immer noch auf eine Regexp-Lösung. Aber danke für deine Zeit. –
- 1. So formatieren Sie Zeichenfolge zu Geld
- 2. Oracle REGEX Wert zu Zeit zu formatieren
- 3. Javascript Informationen von RegExp-Klasse
- 4. So formatieren Sie Gleitkommazahlen mithilfe von Go in eine Zeichenfolge
- 5. REGEXP-Hilfe - Oracle-Pass-Through-Abfrage
- 6. Gibt es eine Möglichkeit, eine Zeichenfolge in Node.js regexp-Anführungszeichen?
- 7. Der Versuch, eine regexp
- 8. Oracle Constraint Nur Buchstaben SQL REGEXP
- 9. wie eine Oracle-SQL-Zeichenfolge in JavaScript, um richtig
- 10. Unsymmetrische `^` und `$` Anker in Oracle regexp
- 11. Möglich, eine Liste ohne * Magie zu formatieren?
- 12. Vb conncetion Zeichenfolge zu Oracle DB
- 13. Ändern Sie eine Spalte zu NULL - Oracle
- 14. RegExp passende Zeichenfolge nicht mit meinem
- 15. Hinzufügen von HTML-Attribut zu Zeichenfolge mit JavaScript ersetzen (Regexp)
- 16. RegExp Match beliebige Zeichenfolge + 8 Ziffern
- 17. Formatieren von Daten und Zeiten in Oracle
- 18. Erste Nummer aus der Zeichenfolge mit regexp
- 19. Fügen Sie eine Zeichenfolge in eine vorhandene RegExp in Javascript ein?
- 20. Hash-Zeichenfolge in Oracle
- 21. Überprüfen Sie, ob eine Zeichenfolge Leerzeichen hat
- 22. Wie die folgende Zeichenfolge in strings.xml zu formatieren
- 23. Regexp zum Ersetzen der sich wiederholenden Zeichenfolge
- 24. Einstellung Client-Informationen in JDBC für Oracle
- 25. leere Zeichenfolge in Oracle
- 26. JavaScript Regexp nur Teil der Zeichenfolge
- 27. Konvertieren und formatieren Sie eine Liste zu String in Erlang
- 28. Wie parsen Sie eine HTML-Zeichenfolge für Image-Tags, um an die SRC-Informationen zu gelangen?
- 29. Wie kann ich eine Zeichenfolge in Java korrekt formatieren?
- 30. Formatieren einer Zeichenfolge, die eine Zahl mit Kommatrennung enthält
Das ist genau das, wonach ich suche. :-) Auch wenn du regexp_substr verwendest und nicht - wie ich dachte - passender wäre - regexp_replace. Das nächste Ding für mich ist, zu entdecken, wie man POSIX-Klassen benutzt. Vielen Dank. –