to_char
-Funktion
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_char
expr
-Ausdrücke numerischer Typen.
In Databricks SQL und Databricks Runtime 14.1 und höher unterstützt to_char
auch expr
der Typen DATE
, TIMESTAMP
und 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“,STRING
oderBINARY
.numericFormat
: einSTRING
-Literal, das die formatierte Ausgabe fürexpr
vom Typ „numerisch“ angibt.datetimeFormat
: einSTRING
-Literal, das die formatierte Ausgabe fürexpr
vom Typ „datetime“ angibt.stringFormat
: einSTRING
-Literal, das die formatierte Ausgabe fürexpr
vom TypBINARY
angibt.
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):
0
oder9
Gibt 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.
.
oderD
Gibt die Position des Dezimalpunkts an (optional, nur einmal erlaubt).
,
oderG
Gibt 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.
S
oderMI
Gibt die Position des Zeichens „-“ oder „+“ an (optional, nur einmal am Anfang oder Ende der Zeichenfolge zulässig). Beachten Sie, dass
S
für positive Werte+
ausgibt, aberMI
gibt ein Leerzeichen aus.PR
Nur 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.