Funktionen to_char

Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime 11.3 LTS och senare

Returnerar expr cast till STRING med formatering fmt.

I Databricks Runtime 14.0 och tidigare to_char stöds expr numeriska typer.

I Databricks SQL och Databricks Runtime 14.1 och senare to_char har även stöd expr för typer DATE, TIMESTAMPoch BINARY

to_char är en 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 ] ' }

Argument

  • expr: Ett uttryck av typen numeriskt, datetime, STRINGeller BINARY.
  • numericFormat: En STRING literal som anger formaterade utdata för expr av typen numerisk.
  • datetimeFormat: En STRING literal som anger formaterade utdata för expr av typen datetime.
  • stringFormat: En STRING literal som anger formaterade utdata för expr av typen BINARY.

Returer

En STRING som representerar resultatet av formateringsåtgärden.

datetmeFormat kan innehålla de mönster som anges i Datetime-mönster.

stringFormat kan vara något av följande (skiftlägesokänsligt):

  • "base64"

    En base 64-sträng.

  • "hex"

    En sträng i hexadecimalt format.

  • "utf-8"

    Indatabinärfilen avkodas till UTF-8-strängen.

numericFormat kan innehålla följande element (skiftlägesokänsligt):

  • 0 eller 9

    Anger en förväntad siffra mellan 0 och 9. En sekvens med siffror med värden mellan 0 och 9 i formatsträngen matchar en sekvens med siffror i indatavärdet. Detta genererar en resultatsträng med samma längd som motsvarande sekvens som formatsträngen. Resultatsträngen är vänster vadderad med nollor om 0/9-sekvensen innehåller fler siffror än den matchande delen av decimalvärdet, börjar med 0 och är före decimaltecknet. Annars är den vadderad med blanksteg.

  • . eller D

    Anger decimaltecknets position (valfritt, tillåts bara en gång).

  • , eller G

    Anger positionen för grupperingsavgränsaren (tusentals) (,). Det måste finnas 0 eller 9 till vänster och höger om varje grupperingsavgränsare.

  • $

    Anger platsen för valutatecknet $ . Det här tecknet kan bara anges en gång.

  • S eller MI

    Anger positionen för ett "-" eller "+"-tecken (valfritt, tillåts bara en gång i början eller slutet av formatsträngen). Observera att S skrivs + ut för positiva värden men MI skriver ut ett blanksteg.

  • PR

    Tillåts endast i slutet av formatsträngen. anger att resultatsträngen kommer att omslutas av vinkelparenteser om indatavärdet är negativt. ('<1>').

Om antingen integralen eller decimaldelen i numExpr kräver fler siffror än motsvarande del som tillåts i fmtreturnerar funktionen båda delarna i fmt med 0 och 9 ersätts av # (t.ex '$###.##'. ).

Om fmt är felaktigt databricks SQL returnerar ett fel.

Den här funktionen är ett alias för to_varchar.

Exempel

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