In diesem Oracle-Lernprogramm wird erläutert, wie Sie die Oracle/PLSQL TO_CHAR-Funktion mit Syntax und Beispielen verwenden.
Beschreibung
Die Oracle/PLSQL TO_CHAR-Funktion konvertiert eine Zahl oder ein Datum in eine Zeichenfolge.
Syntax
Die Syntax für die TO_CHAR-Funktion in Oracle/PLSQL lautet:
Parameter oder Argumente
value Eine Nummer oder ein Datum, die in eine Zeichenfolge konvertiert werden.
format_mask Wahlweise. Dies ist das Format, das zum Konvertieren von Werten in eine Zeichenfolge verwendet wird.
nls_language Wahlweise. Dies ist die Sprache nls, die zum Konvertieren von Werten in eine Zeichenfolge verwendet wird.
Kehrt zurück
- Die TO_CHAR-Funktion gibt einen Zeichenfolgenwert zurück.
Gilt für
Die TO_CHAR-Funktion kann in folgenden Versionen von Oracle/PLSQL verwendet werden:
- Oracle 12c, Oracle 11g, Oracle 10g, Oracle 9i, Oracle 8i
Beispiel
Sehen wir uns einige Beispiele für Oracle/PLSQL TO_CHAR-Funktion an und untersuchen Sie, wie Sie die TO_CHAR-Funktion in Oracle/PLSQL verwenden.
Beispiele mit Zahlen
Im Folgenden finden Sie Zahlenbeispiele für die Funktion TO_CHAR.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
SELECT TO_CHAR(1242.78, '9999.9') FROM DUAL; -- Ergebnis: '1242.8' SELECT TO_CHAR(-1242.78, '9999.9') FROM DUAL; -- Ergebnis: '-1242.8' SELECT TO_CHAR(1242.78, '9,999.99') FROM DUAL; -- Ergebnis: '1,242.78' SELECT TO_CHAR(1242.78, '$9,999.00') FROM DUAL; -- Ergebnis: '$1,242.78' SELECT TO_CHAR(18, '000099') FROM DUAL; -- Ergebnis: '000018' |
Beispiele mit Daten
Die folgende Liste enthält gültige Parameter, wenn die TO_CHAR-Funktion zum Konvertieren eines Datums in eine Zeichenfolge verwendet wird. Diese Parameter können in vielen Kombinationen verwendet werden.
Parameter | Erläuterung |
---|---|
YEAR | Jahr, ausgesprochen |
YYYY | 4-stelliges Jahr |
YYY YY Y | Letzte 3, 2 oder 1 Ziffer (n) des Jahres. |
IYY IY I | Letzte 3, 2 oder 1 Ziffer (n) des ISO-Jahres. |
IYYY | 4-stelliges Jahr nach ISO-Standard |
Q | Quartal des Jahres (1, 2, 3, 4; JAN-MAR = 1). |
MM | Monat (01-12; JAN = 01). |
MON | Kurzname des Monats. |
MONTH | Name des Monats, gefüllt mit Leerzeichen, Länge 9 Zeichen. |
RM | Monat der römischen Zahl (I-XII; JAN = I). |
WW | Woche des Jahres (1-53), wobei Woche 1 am ersten Tag des Jahres beginnt und bis zum siebten Tag des Jahres andauert. |
W | Woche des Jahres (1-53), wobei Woche 1 bis zum siebten Tag des Jahres andauert. |
IW | Woche des Jahres (1-52 oder 1-53) basierend auf dem ISO-Standard. |
D | Wochentag (1-7). |
DAY | Name des Tages |
DD | Tag des Monats (1-31). |
DDD | Tag des Jahres (1-366). |
DY | Abkürzter Name des Tages. |
J | Julianischer Tag; die Anzahl der Tage seit dem 1. Januar 4712 v. |
HH | Tageszeit (1-12). |
HH12 | Tageszeit (1-12). |
HH24 | Tageszeit (0-23). |
MI | Minute (0-59). |
SS | Sekunde (0-59). |
SSSSS | Sekunden nach Mitternacht (0-86399). |
FF | Sekundenbruchteile. |
Die folgenden Datumsbeispiele für die TO_CHAR-Funktion.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
SELECT TO_CHAR(sysdate, 'yyyy/mm/dd') AS RESULT FROM DUAL; -- Ergebnis: 2018/10/09 SELECT TO_CHAR(sysdate, 'yyyy.mm.dd') AS RESULT FROM DUAL; -- Ergebnis: 2018.10.09 SELECT TO_CHAR(sysdate, 'Month DD, YYYY') AS RESULT FROM DUAL; -- Ergebnis: Oktober 09, 2018 SELECT TO_CHAR(sysdate, 'FMMonth DD, YYYY') AS RESULT FROM DUAL; -- Ergebnis: Oktober 9, 2018 SELECT TO_CHAR(sysdate, 'MON DD, YYYY') AS RESULT FROM DUAL; -- Ergebnis: OKT 09, 2018 SELECT TO_CHAR(sysdate, 'FMMON DD, YYYY') AS RESULT FROM DUAL; -- Ergebnis: OKT 9, 2018 SELECT TO_CHAR(sysdate, 'FMMon dd, YYYY') AS RESULT FROM DUAL; -- Ergebnis: Okt 9, 2018 |
Sie werden feststellen, dass in einigen TO_CHAR-Funktionsbeispielen der Parameter format_mask mit "FM" beginnt. Dies bedeutet, dass Nullen und Leerzeichen unterdrückt werden. Dies kann in den folgenden Beispielen gesehen werden.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
SELECT TO_CHAR(sysdate, 'MON DD, YYYY') AS RESULT FROM DUAL; -- Ergebnis: OKT 09, 2018 SELECT TO_CHAR(sysdate, 'FMMON DD, YYYY') AS RESULT FROM DUAL; -- Ergebnis: OKT 9, 2018 SELECT TO_CHAR(sysdate, 'FMMon dd, YYYY') AS RESULT FROM DUAL; -- Ergebnis: Okt 9, 2018 |
Die Nullen wurden unterdrückt, so dass die Tageskomponente als "9" im Gegensatz zu "09" angezeigt wird.