MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

Cách TRUNCATE () hoạt động trong MariaDB

Trong MariaDB, TRUNCATE() là một hàm số được tích hợp sẵn trả về một số nhất định, được cắt ngắn đến một số vị trí thập phân nhất định.

Cú pháp

Cú pháp như sau:

TRUNCATE(X,D)

Ở đâu X là giá trị để cắt bớt và D chỉ định có bao nhiêu vị trí thập phân để cắt bớt nó.

Ví dụ

Đây là một ví dụ:

SELECT TRUNCATE(1.25817, 2);

Kết quả:

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

Đây là một số khác:

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

Kết quả (sử dụng đầu ra dọc):

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

Vị trí thập phân phủ định

Đối số thứ hai có thể là giá trị âm nếu được yêu cầu. Việc chuyển một giá trị âm làm cho các chữ số ở bên trái vị trí thập phân trở thành số không.

Ví dụ:

SELECT TRUNCATE(5824.17, -2);

Kết quả:

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

So với ROUND()

TRUNCATE() hàm khác với ROUND() hàm số. ROUND() hàm làm tròn số lên trong một số trường hợp và giảm xuống ở một số trường hợp khác. TRUNCATE() mặt khác, hàm này chỉ đơn giản là cắt bớt số mà không làm tròn số.

Dưới đây là một so sánh để chứng minh sự khác biệt này:

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

Kết quả:

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

Nó cũng khác với FLOOR() hàm, trả về giá trị số nguyên lớn nhất không lớn hơn đối số của nó. FLOOR() không chấp nhận đối số thứ hai như ROUND()TRUNCATE() do (dù sao nó cũng chỉ trả về một số nguyên).

Đối số không phải dạng số

Đây là những gì sẽ xảy ra khi chúng tôi cung cấp đối số không phải là số:

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

Kết quả:

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

Hãy kiểm tra cảnh báo:

SHOW WARNINGS;

Kết quả:

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

Số lượng đối số không hợp lệ

Đang gọi TRUNCATE() với số lượng đối số sai hoặc không có đối số dẫn đến lỗi:

SELECT TRUNCATE();

Kết quả:

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

Và:

SELECT TRUNCATE(1, 2, 3);

Kết quả:

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. Hướng dẫn về MariaDB Columnstore dành cho quản trị viên MySQL

  2. MariaDB JSON_ARRAY_APPEND () Giải thích

  3. MariaDB JSON_EXTRACT () Giải thích

  4. 5 chức năng để trích xuất số tuần từ một ngày trong MariaDB

  5. Cách hoạt động của nhà điều hành Modulo trong MariaDB