次の方法で共有


to_char 関数

適用対象: check marked yes 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 では、DATETIMESTAMPBINARY の型の expr もサポートされています

to_charto_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 で対応する各部に許容されているよりも多くの桁数が必要な場合、この関数を使うと、両方の部分の 09# に置き換えられ、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.