Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
Databricks SQL
Databricks Runtime 11.3 LTS und höher
Gibt expr zurück, das in eine STRING umgewandelt wurde (mithilfe der Formatierung fmt).
In Databricks Runtime 14.0 und früher unterstützt to_charexpr-Ausdrücke numerischer Typen.
In Databricks SQL und Databricks Runtime 14.1 und höher unterstützt to_char auch expr der Typen DATE, TIMESTAMPund BINARY
to_char ist ein Synonym für to_varchar.
Syntax
to_char(expr, { numericFormat | datetimeFormat | stringFormat } )
numericFormat
{ ' [ S ] [ L | $ ]
[ 0 | 9 | G | , ] [...]
[ . | D ]
[ 0 | 9 ] [...]
[ L | $ ] [ PR | MI | S ] ' }
Argumente
-
expr: ein Ausdruck eines der Typen „numerisch“, „datetime“,STRINGoderBINARY. -
numericFormat: einSTRING-Literal, das die formatierte Ausgabe fürexprvom Typ „numerisch“ angibt. -
datetimeFormat: einSTRING-Literal, das die formatierte Ausgabe fürexprvom Typ „datetime“ angibt. -
stringFormat: einSTRING-Literal, das die formatierte Ausgabe fürexprvom TypBINARYangibt.
Gibt zurück
Eine STRING, die das Ergebnis des Formatierungsvorgangs darstellt.
datetmeFormat kann die in Datetime-Mustern angegebenen Muster enthalten.
stringFormat kann eine der folgenden Zeichenfolgen sein (keine Unterscheidung zwischen Groß- und Kleinschreibung):
'base64'
Eine Base64-Zeichenfolge.
"hex"
Eine Zeichenfolge im Hexadezimalformat.
'utf-8'
Die Eingabebinärdatei wird in eine UTF-8-Zeichenfolge decodiert.
numericFormat kann die folgenden Elemente enthalten (Groß-/Kleinschreibung wird nicht beachtet):
0oder9Gibt eine erwartete Ziffer zwischen 0 und 9 an. Eine Sequenz von Ziffern mit Werten zwischen 0 und 9 in der Formatzeichenfolge entspricht einer Sequenz von Ziffern im Eingabewert. Dadurch wird eine Ergebniszeichenfolge derselben Länge wie die entsprechende Sequenz wie die Formatzeichenfolge generiert. Die Zeichenfolge des Ergebnisses wird links mit Nullen aufgefüllt, wenn die 0/9-Sequenz mehr Ziffern umfasst als der passende Teil des Dezimalwerts, mit 0 beginnt und vor dem Dezimalpunkt liegt. Andernfalls wird sie mit Leerzeichen aufgefüllt.
.oderDGibt die Position des Dezimalpunkts an (optional, nur einmal erlaubt).
,oderGGibt die Position des Tausendertrennzeichens (,) an. Es muss eine 0 oder 9 links oder rechts von jedem Gruppierungstrennzeichen vorhanden sein.
$Gibt die Position des $-Währungszeichens an. Dieses Zeichen darf nur einmal angegeben werden.
SoderMIGibt die Position eines Zeichens "-" oder "+" an (optional, nur einmal am Anfang oder Ende der Formatzeichenfolge zulässig). Beachten Sie, dass
Sfür positive Werte+ausgibt, aberMIgibt ein Leerzeichen aus.PRNur am Ende der Zeichenfolge für das Format zulässig. Gibt an, dass die Ergebniszeichenfolge mit spitzen Klammern umschlossen wird, wenn der Eingabewert negativ ist. ('<1>').
Wenn der Integral- oder der Dezimalteil in numExpr mehr Stellen als der entsprechende in fmt zulässige Teil benötigt, gibt die Funktion beide Teile in fmt zurück, wobei 0 und 9 durch # ersetzt werden (z. B. '$###.##').
Wenn fmt nicht wohlgeformt ist, gibt Databricks SQL einen Fehler zurück.
Diese Funktion ist ein Alias für to_varchar.
Beispiele
> SELECT to_char(454, '999');
454
> SELECT to_char(454, '000.00');
454.00
> SELECT to_char(12454, '99,999');
12,454
> SELECT to_char(78.12, '$99.99');
$78.12
> SELECT to_char(-12454.8, '99,999.9S');
12,454.8-
> SELECT to_char(12454.8, '99,999.9S');
12,454.8+
> SELECT '>' || to_char(123, '00000.00') || '<';
>00123.00<
> SELECT '>' || to_char(123, '99999.99') || '<';
> 123.00<
> SELECT to_char(1.1, '99');
##
> SELECT to_char(111.11, '99.9');
##.#
> SELECT to_char(111.11, '$99.9');
$##.#
> SELECT to_char(date'2016-04-08', 'y');
2016
> SELECT to_char(x'537061726b2053514c', 'base64');
U3BhcmsgU1FM
> SELECT to_char(x'537061726b2053514c', 'hex');
537061726B2053514C
> SELECT to_char(encode('abc', 'utf-8'), 'utf-8');
abc
> SELECT to_char(111, 'wrong');
Error: 'wrong' is a malformed format.