DECIMAL เป็น Data Type ที่เหมาะสมที่สุดสำหรับเก็บเงิน เพราะแม่นยำ ไม่มีปัญหาจุดทศนิยมลอย (Floating Point Error)
ไวยากรณ์ DECIMAL
DECIMAL(TotalDigits, DigitsAfterDecimalPoint);
ตัวอย่างการใช้งาน
สร้างตาราง CurrenciesDemo:
mysql> CREATE TABLE CurrenciesDemo (TotalPrice DECIMAL(10,2));
เพิ่มข้อมูลราคา:
mysql> INSERT INTO CurrenciesDemo VALUES(1647575.67),(1647575),(99599596),(1986.50),(99999999.90);
ผลลัพธ์ (แสดงทศนิยม 2 ตำแหน่งเสมอ)
+-------------+ | TotalPrice | +-------------+ | 1647575.67 | | 1647575.00 | | 99599596.00 | | 1986.50 | | 99999999.90 | +-------------+
แสดงพร้อมสัญลักษณ์สกุลเงิน
mysql> SELECT CONCAT('$', TotalPrice) AS DollarSign FROM CurrenciesDemo;
+--------------+ | DollarSign | +--------------+ | $1647575.67 | | $1647575.00 | | $99599596.00 | | $1986.50 | | $99999999.90 | +--------------+
ทำไมไม่ใช้ FLOAT/DOUBLE: มีปัญหาความแม่นยำ (0.1 + 0.2 ≠ 0.3) ไม่เหมาะกับการคำนวณเงิน
แนะนำ: DECIMAL(19,4) หรือ DECIMAL(10,2) ขึ้นอยู่กับขนาดธุรกรรม