Saat menggunakan T-SQL dengan SQL Server, kita dapat memformat angka menggunakan berbagai metode, tergantung pada format yang kita inginkan.
Di bawah ini adalah empat fungsi yang dapat digunakan untuk memformat angka menjadi dua tempat desimal di SQL Server.
CAST()
Fungsi
Cara paling jelas untuk melakukannya adalah dengan mengonversi angka menjadi tipe desimal. Dua fungsi yang dapat melakukan ini untuk kita adalah CAST()
dan CONVERT()
.
Berikut ini contoh penggunaan CAST()
:
SELECT CAST(275 AS DECIMAL(5, 2));
Hasil:
275.00
Kita dapat menggunakan metode ini meskipun bilangan tersebut sudah merupakan nilai desimal tetapi dengan lebih banyak tempat desimal.
Satu hal yang perlu diingat, adalah jika Anda mengurangi jumlah tempat desimal dari angka dengan lebih dari dua tempat desimal, maka Anda bisa mendapatkan tempat desimal kedua yang dibulatkan ke atas:
SELECT CAST(275.4567 AS DECIMAL(5, 2));
Hasil:
275.46
The CONVERT()
Fungsi
Di sini, kami menggunakan CONVERT()
untuk melakukan hal yang sama – ubah angka menjadi desimal:
SELECT CONVERT(DECIMAL(5, 2), 275);
Hasil:
275.00
The FORMAT()
Fungsi
Cara lain untuk memformat angka dengan dua tempat desimal adalah dengan menggunakan FORMAT()
fungsi:
SELECT FORMAT(275, 'N2');
Hasil:
275.00
Fungsi ini sebenarnya mengubah angka menjadi string, jadi secara teknis, hasilnya bukan tipe numerik.
N2
bagian disebut sebagai string format. Dalam hal ini, N
adalah untuk nomor dan 2
adalah untuk jumlah tempat desimal (Anda dapat menambah atau mengurangi ini sesuai kebutuhan).
Teknik yang sama dapat digunakan untuk mengurangi tempat desimal menjadi dua, dari angka dengan lebih banyak tempat desimal:
SELECT FORMAT(275.4567, 'N2');
Hasil:
275.46
Sudah dibulatkan, seperti saat kita mengonversi angka di contoh lain.
Cara lain untuk melakukannya adalah dengan menggunakan string format khusus. String format kustom memungkinkan Anda menentukan format yang mungkin tidak didukung oleh string format standar.
Berikut ini contoh penggunaan string format khusus:
SELECT
FORMAT(275, '###.##') AS "###.##",
FORMAT(275, '000.00') AS "000.00",
FORMAT(275.4567, '###.##') AS "###.##",
FORMAT(275.4567, '000.00') AS "000.00";
Hasil:
+----------+----------+----------+----------+ | ###.## | 000.00 | ###.## | 000.00 | |----------+----------+----------+----------| | 275 | 275.00 | 275.46 | 275.46 | +----------+----------+----------+----------+
Kita dapat melihat bahwa ada perbedaan antara menggunakan #
dan 0
dalam format string. #
penentu format menekan nol yang tidak signifikan saat 0
penentu format tidak.
Tapi mungkin yang lebih penting (untuk tujuan artikel ini), 0
penentu format memungkinkan Anda untuk menambahkan nol yang tidak signifikan jika tidak ada dalam angka aslinya. Oleh karena itu, ini dapat digunakan untuk menambahkan dua tempat desimal ke bilangan bulat (seperti yang terlihat pada contoh di atas).
STR()
Fungsi
Cara lain untuk memformat angka menjadi dua tempat desimal adalah dengan menggunakan STR()
fungsi:
SELECT STR(275, 6, 2);
Hasil:
275.00
Fungsi ini mengembalikan data karakter yang dikonversi dari data numerik. Data karakter diratakan dengan benar, dengan panjang tertentu dan presisi desimal.
Argumen pertama adalah ekspresi tipe data float dengan titik desimal.
Argumen kedua adalah panjang total. Ini termasuk titik desimal, tanda, angka, dan spasi. Standarnya adalah 10.
Argumen ketiga adalah jumlah tempat di sebelah kanan titik desimal. Ini harus kurang dari atau sama dengan 16.