Bagikan melalui


to_char fungsi

Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime 11.3 LTS ke atas

Mengembalikan expr yang telah di-cast ke STRING menggunakan format fmt.

Di Databricks Runtime 14.0 dan versi yang lebih lama to_char mendukung jenis-jenis numerik expr.

Dalam Databricks SQL dan Databricks Runtime 14.1 ke atas to_char juga mendukung expr jenis DATE, TIMESTAMP, dan BINARY

to_char adalah sinonim untuk to_varchar.

Sintaks

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

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

Argumen

  • expr: Ekspresi jenis numerik, tanggalwaktu, STRING, atau BINARY.
  • numericFormat: Literal STRING, yang menentukan output yang diformat untuk expr tipe numerik.
  • datetimeFormat: Literal STRING, menentukan output yang diformat untuk expr jenis tanggal waktu.
  • stringFormat: Literal STRING, menentukan keluaran yang diformat untuk expr dari jenis BINARY.

Pengembalian

STRING yang mewakili hasil dari operasi pemformatan.

datetmeFormat dapat berisi pola yang ditentukan dalam pola Tanggalwaktu.

stringFormat dapat berupa salah satu hal berikut (tidak peka huruf besar/kecil):

  • 'base64'

    String dasar 64.

  • 'hex'

    String dalam format heksadesimal.

  • 'utf-8'

    Biner input didekodekan ke string UTF-8.

numericFormat dapat berisi elemen berikut (tidak peka huruf besar/kecil):

  • 0 atau 9

    Menentukan digit yang diharapkan antara 0 dan 9. Urutan digit dengan nilai antara 0 dan 9 dalam string format cocok dengan urutan digit dalam nilai input. Ini menghasilkan string hasil dengan panjang yang sama dengan urutan yang sesuai dengan string format. String hasil dilengkapi angka nol di sebelah kiri jika urutan 0/9 memiliki lebih banyak digit daripada bagian yang cocok dari nilai desimal, dimulai dengan 0, dan terletak sebelum titik desimal. Jika tidak, diisi dengan spasi.

  • . atau D

    Menentukan posisi titik desimal (opsional, hanya diperbolehkan sekali).

  • , atau G

    Menentukan posisi pemisah pengelompokan (ribuan) (,). Harus ada 0 atau 9 di sebelah kiri dan kanan setiap pemisah pengelompokan.

  • $

    Menentukan lokasi tanda mata uang $. Karakter ini hanya dapat ditentukan sekali.

  • S atau MI

    Menentukan posisi tanda '-' atau '+' (opsional, hanya diperbolehkan sekali di awal atau akhir string format). Perhatikan bahwa S mencetak + untuk nilai positif tetapi MI mencetak spasi.

  • PR

    Hanya diizinkan di akhir string format; menentukan bahwa string hasil akan dibungkus oleh tanda kurung sudut jika nilai input negatif. ('<1>')

Jika bagian integral atau desimal dalam numExpr memerlukan lebih banyak digit daripada bagian terkait yang diizinkan dalam fmt, fungsi mengembalikan kedua bagian dalam fmt dengan 0 dan 9 digantikan oleh # (misalnya '$###.##').

Jika fmt salah format, Databricks SQL akan mengembalikan kesalahan.

Fungsi ini adalah alias untuk to_varchar.

Contoh

> SELECT to_char(454, '999');
 454

> SELECT to_char(454, '000.00');
 1.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.