Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
TO_CHAR
TO_CHAR mengkonversi timestamp atau ekspresi numerik ke format data karakter-string.
Sintaks
TO_CHAR (timestamp_expression | numeric_expression , 'format')
Argumen
- timestamp_expression
-
Ekspresi yang menghasilkan nilai tipe TIMESTAMP atau TIMESTAMPTZ atau nilai yang secara implisit dapat dipaksa ke stempel waktu.
- numeric_expression
-
Ekspresi yang menghasilkan nilai tipe data numerik atau nilai yang secara implisit dapat dipaksa ke tipe numerik. Untuk informasi selengkapnya, lihat Jenis numerik. TO_CHAR menyisipkan spasi di sebelah kiri string angka.
catatan
TO_CHAR tidak mendukung nilai DESIMAL 128-bit.
- format
-
Format untuk nilai baru. Untuk format yang valid, lihat String format datetime dan String format numerik.
Jenis pengembalian
VARCHAR
Contoh-contoh
Contoh berikut mengkonversi stempel waktu ke nilai dengan tanggal dan waktu dalam format dengan nama bulan empuk untuk sembilan karakter, nama hari dalam seminggu, dan nomor hari bulan.
select to_char(timestamp '2009-12-31 23:15:59', 'MONTH-DY-DD-YYYY HH12:MIPM'); to_char ------------------------- DECEMBER -THU-31-2009 11:15PM
Contoh berikut mengonversi stempel waktu menjadi nilai dengan nomor hari dalam setahun.
select to_char(timestamp '2009-12-31 23:15:59', 'DDD'); to_char ------------------------- 365
Contoh berikut mengonversi stempel waktu ke nomor hari ISO dalam seminggu.
select to_char(timestamp '2022-05-16 23:15:59', 'ID'); to_char ------------------------- 1
Contoh berikut mengekstrak nama bulan dari tanggal.
select to_char(date '2009-12-31', 'MONTH'); to_char ------------------------- DECEMBER
Contoh berikut mengkonversi setiap nilai STARTTIME dalam tabel EVENT ke string yang terdiri dari jam, menit, dan detik.
select to_char(starttime, 'HH12:MI:SS') from event where eventid between 1 and 5 order by eventid; to_char ---------- 02:30:00 08:00:00 02:30:00 02:30:00 07:00:00 (5 rows)
Contoh berikut mengkonversi seluruh nilai timestamp ke dalam format yang berbeda.
select starttime, to_char(starttime, 'MON-DD-YYYY HH12:MIPM') from event where eventid=1; starttime | to_char ---------------------+--------------------- 2008-01-25 14:30:00 | JAN-25-2008 02:30PM (1 row)
Contoh berikut mengkonversi stempel waktu literal ke string karakter.
select to_char(timestamp '2009-12-31 23:15:59','HH24:MI:SS'); to_char ---------- 23:15:59 (1 row)
Contoh berikut mengkonversi angka ke string karakter dengan tanda negatif di akhir.
select to_char(-125.8, '999D99S'); to_char --------- 125.80- (1 row)
Contoh berikut mengkonversi angka ke string karakter dengan simbol mata uang.
select to_char(-125.88, '$S999D99'); to_char --------- $-125.88 (1 row)
Contoh berikut mengkonversi angka ke string karakter menggunakan kurung sudut untuk angka negatif.
select to_char(-125.88, '$999D99PR'); to_char --------- $<125.88> (1 row)
Contoh berikut mengkonversi angka ke string angka Romawi.
select to_char(125, 'RN'); to_char --------- CXXV (1 row)
Contoh berikut menampilkan hari dalam seminggu.
SELECT to_char(current_timestamp, 'FMDay, FMDD HH12:MI:SS');
to_char ----------------------- Wednesday, 31 09:34:26
Contoh berikut menampilkan akhiran nomor urut untuk angka.
SELECT to_char(482, '999th');
to_char ----------------------- 482nd
Contoh berikut mengurangi komisi dari harga yang dibayarkan dalam tabel penjualan. Perbedaannya kemudian dibulatkan dan diubah menjadi angka romawi, ditunjukkan pada to_char
kolom:
select salesid, pricepaid, commission, (pricepaid - commission) as difference, to_char(pricepaid - commission, 'rn') from sales group by sales.pricepaid, sales.commission, salesid order by salesid limit 10; salesid | pricepaid | commission | difference | to_char ---------+-----------+------------+------------+----------------- 1 | 728.00 | 109.20 | 618.80 | dcxix 2 | 76.00 | 11.40 | 64.60 | lxv 3 | 350.00 | 52.50 | 297.50 | ccxcviii 4 | 175.00 | 26.25 | 148.75 | cxlix 5 | 154.00 | 23.10 | 130.90 | cxxxi 6 | 394.00 | 59.10 | 334.90 | cccxxxv 7 | 788.00 | 118.20 | 669.80 | dclxx 8 | 197.00 | 29.55 | 167.45 | clxvii 9 | 591.00 | 88.65 | 502.35 | dii 10 | 65.00 | 9.75 | 55.25 | lv (10 rows)
Contoh berikut menambahkan simbol mata uang ke nilai selisih yang ditunjukkan pada to_char
kolom:
select salesid, pricepaid, commission, (pricepaid - commission) as difference, to_char(pricepaid - commission, 'l99999D99') from sales group by sales.pricepaid, sales.commission, salesid order by salesid limit 10; salesid | pricepaid | commission | difference | to_char --------+-----------+------------+------------+------------ 1 | 728.00 | 109.20 | 618.80 | $ 618.80 2 | 76.00 | 11.40 | 64.60 | $ 64.60 3 | 350.00 | 52.50 | 297.50 | $ 297.50 4 | 175.00 | 26.25 | 148.75 | $ 148.75 5 | 154.00 | 23.10 | 130.90 | $ 130.90 6 | 394.00 | 59.10 | 334.90 | $ 334.90 7 | 788.00 | 118.20 | 669.80 | $ 669.80 8 | 197.00 | 29.55 | 167.45 | $ 167.45 9 | 591.00 | 88.65 | 502.35 | $ 502.35 10 | 65.00 | 9.75 | 55.25 | $ 55.25 (10 rows)
Contoh berikut mencantumkan abad di mana setiap penjualan dilakukan.
select salesid, saletime, to_char(saletime, 'cc') from sales order by salesid limit 10; salesid | saletime | to_char ---------+---------------------+--------- 1 | 2008-02-18 02:36:48 | 21 2 | 2008-06-06 05:00:16 | 21 3 | 2008-06-06 08:26:17 | 21 4 | 2008-06-09 08:38:52 | 21 5 | 2008-08-31 09:17:02 | 21 6 | 2008-07-16 11:59:24 | 21 7 | 2008-06-26 12:56:06 | 21 8 | 2008-07-10 02:12:36 | 21 9 | 2008-07-22 02:23:17 | 21 10 | 2008-08-06 02:51:55 | 21 (10 rows)
Contoh berikut mengkonversi setiap nilai STARTTIME dalam tabel EVENT ke string yang terdiri dari jam, menit, detik, dan zona waktu.
select to_char(starttime, 'HH12:MI:SS TZ') from event where eventid between 1 and 5 order by eventid; to_char ---------- 02:30:00 UTC 08:00:00 UTC 02:30:00 UTC 02:30:00 UTC 07:00:00 UTC (5 rows) (10 rows)
Contoh berikut menunjukkan pemformatan untuk detik, milidetik, dan mikrodetik.
select sysdate, to_char(sysdate, 'HH24:MI:SS') as seconds, to_char(sysdate, 'HH24:MI:SS.MS') as milliseconds, to_char(sysdate, 'HH24:MI:SS:US') as microseconds; timestamp | seconds | milliseconds | microseconds --------------------+----------+--------------+---------------- 2015-04-10 18:45:09 | 18:45:09 | 18:45:09.325 | 18:45:09:325143