Để cắt bớt (không làm tròn) số thập phân xuống 3 chữ số, sử dụng hàm TRUNCATE().
Tạo bảng với cột DECIMAL
mysql> CREATE TABLE DemoTable (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Value DECIMAL(10,5)
-> );
Chèn dữ liệu
mysql> INSERT INTO DemoTable(Value) VALUES(109.4567); mysql> INSERT INTO DemoTable(Value) VALUES(15.9875); mysql> INSERT INTO DemoTable(Value) VALUES(1234.2346789);
Xem dữ liệu gốc (5 chữ số thập phân)
mysql> SELECT * FROM DemoTable;
+----+------------+ | Id | Value | +----+------------+ | 1 | 109.45670 | | 2 | 15.98750 | | 3 | 1234.23468 | +----+------------+
Hiển thị 3 chữ số thập phân với TRUNCATE()
mysql> SELECT TRUNCATE(Value, 3) FROM DemoTable;
+-------------------+ | TRUNCATE(Value,3) | +-------------------+ | 109.456 | | 15.987 | | 1234.234 | +-------------------+
TRUNCATE() vs ROUND()
| Hàm | Hành vi | Ví dụ: TRUNCATE/ROUND(1.2345, 3) |
|---|---|---|
| TRUNCATE() | Cắt bớt chữ số thừa (không làm tròn) | 1.234 |
| ROUND() | Làm tròn theo quy tắc chuẩn | 1.235 |
Lưu ý
TRUNCATE(value, decimals):decimalscó thể âm (cắt ở phần nguyên)- Khác với
FORMAT()trả về chuỗi có dấu phân cách nghìn - Để hiển thị có padding 0 (ví dụ 1.5 → 1.500), dùng
FORMAT()hoặc xử lý ở tầng ứng dụng