Problem:
Sie möchten einen String in Ihrem Ergebnissatz in ein Datum umwandeln.
Beispiel:
Unsere Datenbank hat eine Tabelle namens accounts_creation
, mit einem Feld namens company_id
vom Datentyp NUMBER und zwei NVARCHAR2-Feldern namens company_name
und registration_date
wie unten gezeigt.
Firmen-ID | Unternehmensname | Registrierungsdatum |
---|---|---|
1 | Zehnkampf | 5. Januar 1978 |
2 | Vestel | 21. September 1991 |
3 | Weiße Kapelle | 18. Oktober 2017 |
4 | Silberpokal | 4. Dezember 2021 |
5 | JohnnyBros | 28. August 1984 |
Wir wollen die String-Spalte registration_date
umwandeln in eine Datumsspalte.
Lösung:
Wir verwenden TO_DATE()
Funktion. Hier ist die Abfrage:
SELECT company_id, company_name, TO_DATE(registration_date,'DD Mon YEAR') AS registration_date FROM accounts_creation;
Hier ist das Ergebnis der Abfrage:
Firmen-ID | Unternehmensname | Registrierungsdatum |
---|---|---|
1 | Zehnkampf | 05-JAN-78 |
2 | Vestel | 21-SEP-91 |
3 | Weiße Kapelle | 18-OKT-17 |
4 | Silberpokal | 4. DEZ. 21 |
5 | JohnnyBros | 28-AUG-84 |
Diskussion:
Der TO_DATE(string, format)
Funktion in Oracle konvertiert einen Zeichenfolgenwert in ein Datum. Die Funktion nimmt zwei Argumente entgegen:die zu konvertierende Zeichenfolge und das Datumsformat. In der Formatangabe DD
bezeichnet den Tag des Monats (1-31), MON bezeichnet den abgekürzten Namen des Monats und YEAR
bedeutet die 4-stellige Jahreszahl. Weitere Informationen zu den verfügbaren Formaten finden Sie in der Oracle SQL-Dokumentation hier.