MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Bagaimana TRUNCATE() Bekerja di MariaDB

Di MariaDB, TRUNCATE() adalah fungsi numerik bawaan yang mengembalikan angka tertentu, dipotong ke sejumlah tempat desimal tertentu.

Sintaks

Sintaksnya seperti ini:

TRUNCATE(X,D)

Dimana X adalah nilai yang akan dipotong, dan D menentukan berapa banyak tempat desimal untuk dipotong.

Contoh

Ini contohnya:

SELECT TRUNCATE(1.25817, 2);

Hasil:

+----------------------+
| TRUNCATE(1.25817, 2) |
+----------------------+
|                 1.25 |
+----------------------+

Berikut beberapa lainnya:

SELECT 
    TRUNCATE(1.25817, 1),
    TRUNCATE(1.25817, 2),
    TRUNCATE(1.25817, 3),
    TRUNCATE(1.25817, 4);

Hasil (menggunakan keluaran vertikal):

TRUNCATE(1.25817, 1): 1.2
TRUNCATE(1.25817, 2): 1.25
TRUNCATE(1.25817, 3): 1.258
TRUNCATE(1.25817, 4): 1.2581

Tempat Desimal Negatif

Argumen kedua bisa menjadi nilai negatif jika diperlukan. Melewati nilai negatif menyebabkan digit ke kiri dari tempat desimal menjadi nol.

Contoh:

SELECT TRUNCATE(5824.17, -2);

Hasil:

+-----------------------+
| TRUNCATE(5824.17, -2) |
+-----------------------+
|                  5800 |
+-----------------------+

Dibandingkan dengan ROUND()

TRUNCATE() fungsinya berbeda dengan ROUND() fungsi. ROUND() fungsi membulatkan angka ke atas dalam beberapa kasus dan ke bawah pada kasus lainnya. TRUNCATE() fungsi, di sisi lain, hanya memotong nomor tanpa pembulatan.

Berikut perbandingan untuk menunjukkan perbedaan ini:

SELECT 
    TRUNCATE(3.6789, 2),
    ROUND(3.6789, 2);

Hasil:

+---------------------+------------------+
| TRUNCATE(3.6789, 2) | ROUND(3.6789, 2) |
+---------------------+------------------+
|                3.67 |             3.68 |
+---------------------+------------------+

Ini juga berbeda dengan FLOOR() fungsi, yang mengembalikan nilai integer terbesar tidak lebih besar dari argumennya. FLOOR() tidak menerima argumen kedua seperti ROUND() dan TRUNCATE() do (toh hanya mengembalikan bilangan bulat).

Argumen Non-Numerik

Inilah yang terjadi ketika kami memberikan argumen non-numerik:

SELECT TRUNCATE('Ten', 'Two');

Hasil:

+------------------------+
| TRUNCATE('Ten', 'Two') |
+------------------------+
|                      0 |
+------------------------+
1 row in set, 3 warnings (0.000 sec)

Mari kita periksa peringatannya:

SHOW WARNINGS;

Hasil:

+---------+------+------------------------------------------+
| Level   | Code | Message                                  |
+---------+------+------------------------------------------+
| Warning | 1292 | Truncated incorrect INTEGER value: 'Two' |
| Warning | 1292 | Truncated incorrect DOUBLE value: 'Ten'  |
| Warning | 1292 | Truncated incorrect INTEGER value: 'Two' |
+---------+------+------------------------------------------+

Jumlah Argumen Tidak Valid

Memanggil TRUNCATE() dengan jumlah argumen yang salah, atau tanpa argumen menghasilkan kesalahan:

SELECT TRUNCATE();

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

Dan:

SELECT TRUNCATE(1, 2, 3);

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 ' 3)' at line 1

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ClusterControl CMON HA untuk Database Terdistribusi Ketersediaan Tinggi - Bagian Kedua (Pengaturan Akses GUI)

  2. Cara Mengonversi ke Huruf Besar di MariaDB

  3. Bagaimana DATE_SUB() Bekerja di MariaDB

  4. 4 Cara Memilih Baris Duplikat di MariaDB

  5. Cara Mengatur Zona Waktu Bernama di MariaDB