Funkcja to_char
Dotyczy: Databricks SQL Databricks Runtime 11.3 LTS i nowsze
Zwraca expr
rzutowanie do STRING
przy użyciu formatowania fmt
.
W środowisku Databricks Runtime 14.0 i starszych to_char
wersjach obsługuje expr
typy liczbowe.
W usługach Databricks SQL i Databricks Runtime 14.1 i nowszych to_char
obsługiwane expr
są również typy DATE
, TIMESTAMP
i BINARY
to_char
jest synonimem to_varchar.
Składnia
to_char(expr, { numericFormat | datetimeFormat | stringFormat } )
numericFormat
{ ' [ S ] [ L | $ ]
[ 0 | 9 | G | , ] [...]
[ . | D ]
[ 0 | 9 ] [...]
[ L | $ ] [ PR | MI | S ] ' }
Argumenty
expr
: wyrażenie typu liczbowe, data/godzina,STRING
lubBINARY
.numericFormat
STRING
: literał określający sformatowane dane wyjściowe dlaexpr
typu liczbowego.datetimeFormat
STRING
: literał określający sformatowane dane wyjściowe typuexpr
data/godzina.stringFormat
STRING
: literał określający sformatowane dane wyjściowe dlaexpr
typuBINARY
.
Zwraca
Reprezentująca STRING
wynik operacji formatowania.
datetmeFormat
może zawierać wzorce określone w wzorcach datetime.
stringFormat
może być jedną z następujących wartości (bez uwzględniania wielkości liter):
"base64"
Podstawowy ciąg 64.
"szesnastkowy"
Ciąg w formacie szesnastkowym.
"utf-8"
Wejściowy plik binarny jest dekodowany do ciągu UTF-8.
numericFormat
może zawierać następujące elementy (bez uwzględniania wielkości liter):
0
lub9
Określa oczekiwaną cyfrę z zakresu od 0 do 9. Sekwencja cyfr z wartościami z zakresu od 0 do 9 w ciągu formatu pasuje do sekwencji cyfr w wartości wejściowej. Spowoduje to wygenerowanie ciągu wynikowego o tej samej długości co odpowiednia sekwencja co ciąg formatu. Ciąg wynikowy jest w lewo wypełniony zerami, jeśli sekwencja 0/9 składa się z większej liczby cyfr niż zgodna część wartości dziesiętnej, zaczyna się od 0 i znajduje się przed punktem dziesiętnym. W przeciwnym razie jest wypełniony spacjami.
.
lubD
Określa położenie punktu dziesiętnego (opcjonalnie, dozwolone tylko raz).
,
lubG
Określa położenie separatora grupowania (tysięcy) (,). Musi istnieć od 0 lub 9 do lewej i po prawej stronie każdego separatora grupowania.
$
Określa lokalizację znaku waluty $. Ten znak można określić tylko raz.
S
lubMI
Określa położenie znaku "-" lub "+" (opcjonalnie, dozwolone tylko raz na początku lub na końcu ciągu formatu). Należy pamiętać, że
S
drukuje wartości dodatnie+
, aleMI
drukuje miejsce.PR
Dozwolone tylko na końcu ciągu formatu; określa, że ciąg wynikowy będzie owinięty nawiasami kątowymi, jeśli wartość wejściowa jest ujemna. ('<1>').
Jeśli część całkowita lub dziesiętna w obiekcie numExpr
wymaga większej liczby cyfr niż odpowiednia część dozwolona w elemecie fmt
, funkcja zwraca obie części w fmt
elemecie z wartością i 9
zastąpioną wartością 0
#
(np'$###.##'
. ).
Jeśli fmt
usługa Databricks sql jest nieprawidłowo sformułowana, zwraca błąd.
Ta funkcja jest aliasem dla to_varchar.
Przykłady
> 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.