เก็บค่าทศนิยมใน MySQL ใช้ DECIMAL ต้องเข้าใจ 2 พารามิเตอร์:
Syntax:
DECIMAL(total_digits, digits_after_decimal);
ตัวอย่าง: DECIMAL(4,2)
- พารามิเตอร์แรก: จำนวนหลักทั้งหมด (รวมฝั่งหน้าจุดทศนิยม)
- พารามิเตอร์ที่สอง: จำนวนหลักหลังจุดทศนิยม
- 12.34 ✓ (2 หน้าจุด, 2 หลังจุด)
- 12.4 ✓ (2 หน้าจุด, 1 หลังจุด)
- .2345 ✓ → เก็บเป็น 0.23 (ปัด/ตัดทิ้ง)
- 1.234 ✓ → เก็บเป็น 1.23
- 123.4 ✗ (3 หน้าจุด > 2)
- 1234 ✗ (4 หน้าจุด > 2)
- 1234.56 ✗ (4 หน้าจุด > 2)
หมายถึง: รวม 4 หลัก สูงสุด 2 หลักหลังจุดทศนิยม
ค่าที่ Valid:
ค่าที่ Invalid (Out of range):
ทดสอบกับตาราง
mysql> CREATE TABLE DecimalDemo (Amount DECIMAL(4,2));
Insert ค่า Valid:
mysql> INSERT INTO DecimalDemo VALUES (12.34), (12.4), (.2345), (1.234);
ผลลัพธ์
+--------+
| Amount |
+--------+
| 12.34 |
| 12.40 |
| 0.23 |
| 1.23 |
+--------+