Jika Anda memformat angka di PostgreSQL, dan Anda ingin mengubah lokal sehingga grup dan pemisah desimal yang benar digunakan, berikut cara melakukannya.
Ada dua variabel sistem yang menarik:
lc_monetary | Menyetel lokal yang akan digunakan untuk memformat jumlah uang. |
lc_numeric | Menyetel lokal yang akan digunakan untuk memformat angka. |
Ini dapat diatur dengan SET
pernyataan.
Misalnya:
SET lc_numeric = 'en_US';
Hasil:
SET
Setelah mengatur itu, berfungsi seperti TO_CHAR()
akan memformat angka sesuai dengan en_US
formatnya.
Contoh
Berikut adalah beberapa contoh yang menunjukkan bagaimana variabel ini dapat memengaruhi output:
lc_monetary
Variabel
Berikut adalah contoh pengaturan lc_monetary
variabel:
SET lc_monetary = 'en_US';
SELECT CAST(123456.789 AS money);
Hasil:
$123,456.79
Dan ini dia menggunakan lokal yang berbeda:
SET lc_monetary = 'de_DE';
SELECT CAST(123456.789 AS money);
Hasil:
Eu123.456,79
lc_numeric
Variabel
Berikut adalah contoh pengaturan lc_numeric
variabel, lalu memformat angka dengan TO_CHAR()
fungsi:
SET lc_numeric = 'en_US';
SELECT TO_CHAR(123456.789, 'fm999G999D99');
Hasil:
123,456.79
Dan ini dia menggunakan lokal yang berbeda:
SET lc_numeric = 'de_DE';
SELECT TO_CHAR(123456.789, 'fm999G999D99');
Hasil:
123.456,79
Periksa Pengaturan Saat Ini
Anda dapat memeriksa pengaturan Anda saat ini dengan SHOW
perintah.
Contoh:
SHOW lc_monetary;
Hasil:
en_US
Dan:
SHOW lc_numeric;
Hasil:
de_DE
Setel Ulang Kembali ke Nilai Default
Anda dapat menggunakan yang berikut ini untuk mengatur setiap variabel kembali ke pengaturan default:
SET lc_monetary TO DEFAULT;
SHOW lc_monetary;
Hasil:
en_US.UTF-8
Dan untuk lc_numeric
:
SET lc_numeric TO DEFAULT;
SHOW lc_numeric;
Hasil:
en_US.UTF-8
Lokal yang tersedia di sistem Anda dan namanya bergantung pada apa yang disediakan oleh vendor sistem operasi dan apa yang diinstal. Lihat dokumentasi PostgreSQL tentang dukungan lokal untuk informasi lebih lanjut.