共用方式為


to_char 函式

適用於:檢查標示為是 Databricks SQL 檢查標示為是 Databricks Runtime 11.3 LTS 和更新版本

expr回使用格式fmt設定的STRING轉換。

在 Databricks Runtime 14.0 和更早版本中 to_char ,支持 expr 數值類型。

在 Databricks SQL 和 Databricks Runtime 14.1 和更新版本to_char中,也支援 expr 、 和 類型DATETIMESTAMPBINARY

to_char是to_varchar同義字。

語法

to_char(expr, { numericFormat | datetimeFormat | stringFormat } )

numericFormat
  { ' [ S ] [ L | $ ]
      [ 0 | 9 | G | , ] [...]
      [ . | D ]
      [ 0 | 9 ] [...]
      [ L | $ ] [ PR | MI | S ] ' }

引數

  • expr:數值、日期時間、 STRINGBINARY類型的表達式。
  • numericFormat:常 STRING 值,指定數值類型的格式化輸出 expr
  • datetimeFormat:常 STRING 值,指定 datetime 類型的格式化輸出 expr
  • stringFormat:常STRING值,指定 型BINARY別 的格式化輸出expr

傳回

STRING,表示格式化作業的結果。

datetmeFormat 可以包含 Datetime 模式中指定的 模式

stringFormat 可以是下列其中一項(不區分大小寫):

  • 'base64'

    基底 64 字串。

  • 'hex'

    十六進位格式的字串。

  • 'utf-8'

    輸入二進位檔會譯碼為UTF-8字串。

numericFormat 可以包含下列元素(不區分大小寫):

  • 09

    指定介於 0 到 9 之間的預期數位。 格式字串中值介於 0 到 9 之間的數位序列符合輸入值中的數位序列。 這會產生與格式字串對應序列相同長度的結果字串。 如果 0/9 序列包含的數位比十進位值的相符部分多,則結果字串會以零填補,開頭為 0,且在小數點之前。 否則,會填補空格。

  • .D

    指定小數點的位置(選擇性,只允許一次)。

  • ,G

    指定群組 (千) 分隔符 (,,) 的位置。 每個群組分隔符的左邊和右邊必須有 0 或 9。

  • $

    指定 $ 貨幣符號的位置。 這個字元只能指定一次。

  • SMI

    指定 '-' 或 '+' 符號的位置(選擇性的,只允許在格式字串的開頭或結尾一次)。 請注意, S 列印 + 正值,但 MI 會列印空格。

  • PR

    只有在格式字串結尾才允許;指定輸入值為負數時,結果字串會以角括號包裝。 ('<1>')。

如果中的整數或小數部分 numExpr 需要比 中 fmt允許的對應部分更多的位數,則 函式會傳回 中的 兩個部分 fmt0 並以 9# 取代 。例如 '$###.##'

如果 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.