to_char
関数
適用対象: Databricks SQL Databricks Runtime 11.3 LTS 以降
fmt
の書式設定を使用して、STRING
にキャストされた expr
を返します。
Databricks Runtime 14.0 以前では、to_char
では expr
の数値型がサポートされています。
Databricks SQL および Databricks Runtime 14.1 以降、to_char
では、DATE
、TIMESTAMP
、BINARY
の型の expr
もサポートされています
to_char
は to_varchar のシノニムです。
構文
to_char(expr, { numericFormat | datetimeFormat | stringFormat } )
numericFormat
{ ' [ S ] [ L | $ ]
[ 0 | 9 | G | , ] [...]
[ . | D ]
[ 0 | 9 ] [...]
[ L | $ ] [ PR | MI | S ] ' }
引数
expr
: 数値型、datetime 型、STRING
またはBINARY
。numericFormat
: 数値型のexpr
の書式設定された出力を指定するSTRING
リテラル。datetimeFormat
: datetime 型のexpr
の書式設定された出力を指定するSTRING
リテラル。stringFormat
:BINARY
型のexpr
の書式設定された出力を指定するSTRING
リテラル。
返品
書式設定操作の結果を表す STRING
。
datetmeFormat
には、Datetime パターンで指定されたパターンを含めることができます。
stringFormat
は次のいずれかになります。大文字と小文字は区別されません。
‘base64’
base 64 文字列。
‘16 進数’
16 進数形式の文字列。
‘UTF-8’
入力バイナリは UTF-8 文字列にデコードされます。
numericFormat
には、次の要素を含めることができます (大文字と小文字は区別されません)。
0
または9
予期される数字を 0 から 9 の間でを指定します。 書式指定文字列内の 0 から 9 の値が含まれる数字の列は、入力値の数字の列と一致します。 これにより、対応する列と同じ長さの結果文字列が書式指定文字列として生成されます。 0 または 9 の列が、10 進値の対応する部分より多くの数字で構成され、0 で始まり、小数点より前にある場合、結果文字列の左側にゼロが埋め込まれます。 それ以外の場合は、スペースが埋め込まれます。
.
またはD
小数点の位置を指定します (省略可能であり、1 回のみ使用できます)。
,
またはG
位取り (桁区切り) 記号の位置を指定します。 各桁区切り記号の右と左には、0 または 9 を配置する必要があります。
$
通貨記号 ($) の位置を指定します。 この文字は 1 回だけ指定できます。
S
またはMI
"-" または "+" の記号の位置を指定します (省略可能であり、書式指定文字列の先頭または末尾に 1 回のみ使用できます)。
S
を使用すると、正の値の場合に+
が出力されますが、MI
の場合はスペースが出力されます。PR
書式指定文字列の末尾でのみ使用できます。入力値が負の場合に、結果文字列が山かっこで囲まれるように指定します。 ("<1>")。
numExpr
の整数部または小数部のいずれかに、fmt
で対応する各部に許容されているよりも多くの桁数が必要な場合、この関数を使うと、両方の部分の 0
と 9
が #
に置き換えられ、fmt
で返されます (例: '$###.##'
)。
fmt
の形式に誤りがある場合、Databricks SQL はエラーを返します。
この関数は、to_varchar の別名です。
例
> 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.