Freigeben über


to_char-Funktion

Gilt für: Häkchen ja Databricks SQL Häkchen 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, 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“, STRING oder BINARY.
  • numericFormat: ein STRING-Literal, das die formatierte Ausgabe für expr vom Typ „numerisch“ angibt.
  • datetimeFormat: ein STRING-Literal, das die formatierte Ausgabe für expr vom Typ „datetime“ angibt.
  • stringFormat: ein STRING-Literal, das die formatierte Ausgabe für expr vom Typ BINARY 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 oder 9

    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.

  • . oder D

    Gibt die Position des Dezimalpunkts an (optional, nur einmal erlaubt).

  • , oder G

    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 oder MI

    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, aber MI 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.