TRUNCATE(number, negative_decimals)
ตัดทิ้งหลักจำนวนเต็ม ไม่ปัดเศษ ตรงข้ามกับ ROUND()
ตัวอย่าง
mysql> SELECT TRUNCATE(1789.456, -1);
+-----------------------+
| TRUNCATE(1789.456, -1) |
+-----------------------+
| 1780 |
+-----------------------+
mysql> SELECT TRUNCATE(1789.456, -2);
+-----------------------+
| TRUNCATE(1789.456, -2) |
+-----------------------+
| 1700 |
+-----------------------+
mysql> SELECT TRUNCATE(1789.456, -3);
+-----------------------+
| TRUNCATE(1789.456, -3) |
+-----------------------+
| 1000 |
+-----------------------+
mysql> SELECT TRUNCATE(1789.456, -4);
+-----------------------+
| TRUNCATE(1789.456, -4) |
+-----------------------+
| 0 |
+-----------------------+
การอธิบาย
| Decimals | การกระทำ | ผลลัพธ์ |
|---|---|---|
| -1 | ตัดหลักสิบ (9) ทิ้ง | 1780 |
| -2 | ตัดหลักร้อย+สิบ (8,9) ทิ้ง | 1700 |
| -3 | ตัดหลักพัน+ร้อย+สิบ (7,8,9) ทิ้ง | 1000 |
| -4 | ตัดหมด (มี 4 หลัก) | 0 |
เปรียบเทียบ ROUND vs TRUNCATE (Decimals ติดลบ)
ROUND(1789.456, -1) = 1790 (ดู 9 ≥5 → 8→9)
TRUNCATE(1789.456, -1) = 1780 (ตัด 9 ทิ้งเลย)