Di MariaDB, FORMAT()
adalah fungsi string bawaan yang memformat dan mengembalikan nomor yang diberikan sebagai string.
Ini membutuhkan dua argumen, dan menerima argumen ketiga opsional. Yang pertama adalah angka yang ingin Anda format, yang kedua adalah posisi desimal, dan yang ketiga (opsional) adalah lokal.
Sintaks
Sintaksnya seperti ini:
FORMAT(num, decimal_position[, locale])
Dimana num
adalah angkanya, decimal_position
adalah jumlah tempat desimal untuk membulatkan angka, dan locale
adalah lokal opsional yang digunakan untuk memformat angka (lokal yang berbeda menggunakan konvensi yang berbeda untuk memformat angka).
Contoh
Berikut ini contoh dasarnya:
SELECT FORMAT(1234.5678, 2);
Hasil:
+----------------------+ | FORMAT(1234.5678, 2) | +----------------------+ | 1,234.57 | +----------------------+
Di sini, FORMAT()
menambahkan koma untuk pemisah ribuan. Itu juga membulatkan angka menjadi dua tempat desimal (karena saya menetapkan 2 sebagai argumen kedua).
Hapus Bagian Pecahan
Untuk menghapus bagian pecahan (dan titik desimal yang terkait), gunakan 0
(nol) sebagai argumen kedua:
SELECT FORMAT(1234.5678, 0);
Hasil:
+----------------------+ | FORMAT(1234.5678, 0) | +----------------------+ | 1,235 | +----------------------+
Menambahkan Tempat Desimal
Jika argumen kedua adalah angka yang lebih tinggi daripada jumlah tempat desimal di argumen pertama, nol ditambahkan ke hasil, sehingga mencerminkan jumlah tempat desimal yang diinginkan:
SELECT
FORMAT(1234, 2),
FORMAT(1234.56, 4),
FORMAT(1234.56, 8);
Hasil:
+-----------------+--------------------+--------------------+ | FORMAT(1234, 2) | FORMAT(1234.56, 4) | FORMAT(1234.56, 8) | +-----------------+--------------------+--------------------+ | 1,234.00 | 1,234.5600 | 1,234.56000000 | +-----------------+--------------------+--------------------+
Tentukan Lokal
Anda dapat secara opsional meneruskan argumen ketiga untuk menentukan lokal yang akan digunakan untuk pemformatan.
Contoh:
SELECT
FORMAT(1234567.8912, 2, 'da_DK') AS "da_DK",
FORMAT(1234567.8912, 2, 'rm_CH') AS "rm_CH",
FORMAT(1234567.8912, 2, 'es_BO') AS "es_BO",
FORMAT(1234567.8912, 2, 'ar_SA') AS "ar_SA";
Hasil:
+--------------+--------------+------------+------------+ | da_DK | rm_CH | es_BO | ar_SA | +--------------+--------------+------------+------------+ | 1.234.567,89 | 1'234'567,89 | 1234567,89 | 1234567.89 | +--------------+--------------+------------+------------+
Argumen Non-Numerik
FORMAT()
hanya memformat angka. Memberikan string, misalnya, menghasilkan 0
dikembalikan. Namun, itu masih diformat ke tempat desimal yang ditentukan:
SELECT
FORMAT("Twenty five", 0),
FORMAT("Twenty five", 2),
FORMAT("Twenty five", 4);
Hasil:
+--------------------------+--------------------------+--------------------------+ | FORMAT("Twenty five", 0) | FORMAT("Twenty five", 2) | FORMAT("Twenty five", 4) | +--------------------------+--------------------------+--------------------------+ | 0 | 0.00 | 0.0000 | +--------------------------+--------------------------+--------------------------+
Argumen Null
Memberikan null
karena salah satu dari dua argumen pertama menghasilkan null
:
SELECT
FORMAT(null, 2),
FORMAT(25, null);
Hasil:
+-----------------+------------------+ | FORMAT(null, 2) | FORMAT(25, null) | +-----------------+------------------+ | NULL | NULL | +-----------------+------------------+
Tapi melewati null
karena argumen ketiga tidak memengaruhi hasil:
SELECT FORMAT(25, 2, null);
Hasil:
+---------------------+ | FORMAT(25, 2, null) | +---------------------+ | 25.00 | +---------------------+
Menyediakan Hanya Satu Argumen
Memberikan satu argumen menghasilkan kesalahan:
SELECT FORMAT(1234.56);
Hasil:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
Tidak Memberikan Argumen
Memanggil FORMAT()
tanpa memberikan argumen apa pun menghasilkan kesalahan:
SELECT FORMAT();
Hasil:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1