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_varcharexpr-Ausdrücke numerischer Typen.
In Databricks SQL und Databricks Runtime 14.1 und höher unterstützt to_varchar auch expr der Typen DATE, TIMESTAMP und BINARY
to_varchar ist ein Synonym für to_char.
Syntax
to_varchar(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 numExpr mehr Ziffern erfordert, als fmt zulässt, gibt die Funktion fmt mit 0 und 9 ersetzt durch # zurück (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_varchar(454, '999');
454
> SELECT to_varchar(454, '000.00');
454.00
> SELECT to_varchar(12454, '99,999');
12,454
> SELECT to_varchar(78.12, '$99.99');
$78.12
> SELECT to_varchar(-12454.8, '99,999.9S');
12,454.8-
> SELECT to_varchar(12454.8, '99,999.9S');
12,454.8+
> SELECT '>' || to_varchar(123, '00000.00') || '<';
>00123.00<
> SELECT '>' || to_varchar(123, '99999.99') || '<';
> 123.00<
> SELECT to_varchar(1.1, '99');
##
> SELECT to_varchar(111.11, '99.9');
##.#
> SELECT to_varchar(111.11, '$99.9');
$##.#
> SELECT to_varchar(date'2016-04-08', 'y');
2016
> SELECT to_varchar(x'537061726b2053514c', 'base64');
U3BhcmsgU1FM
> SELECT to_varchar(x'537061726b2053514c', 'hex');
537061726B2053514C
> SELECT to_varchar(encode('abc', 'utf-8'), 'utf-8');
abc
> SELECT to_varchar(111, 'wrong');
Error: 'wrong' is a malformed format.