ชนิดข้อมูล DECIMAL(M,D) รับพารามิเตอร์ 2 ตัว: M = จำนวนหลักทั้งหมด (Precision), D = จำนวนหลักหลังจุดทศนิยม (Scale)
หากต้องการ 10 ตำแหน่งหลังจุดทศนิยม ใช้ DECIMAL(20,10) หมายถึงรวม 20 หลัก โดย 10 หลักหลังจุดทศนิยม และ 10 หลักหน้าจุดทศนิยม
ตัวอย่างการใช้งาน
สร้างตาราง:
mysql> CREATE TABLE Decimal_Demo ( Id INT NOT NULL AUTO_INCREMENT, Price DECIMAL(20,10), PRIMARY KEY(Id) ); Query OK, 0 rows affected (1.06 sec)
เพิ่มข้อมูลทดสอบ:
mysql> INSERT INTO Decimal_Demo(Price) VALUES(7475433123.1727374747); Query OK, 1 row affected (0.15 sec) mysql> INSERT INTO Decimal_Demo(Price) VALUES(999.9999999999); Query OK, 1 row affected (0.19 sec) mysql> INSERT INTO Decimal_Demo(Price) VALUES(1363645345.1726364664); Query OK, 1 row affected (0.16 sec) mysql> INSERT INTO Decimal_Demo(Price) VALUES(1.172636466437475656565); Query OK, 1 row affected, 1 warning (0.53 sec) mysql> INSERT INTO Decimal_Demo(Price) VALUES(0.9999999999); Query OK, 1 row affected (0.20 sec)
แสดงข้อมูล:
+----+-----------------------+ | Id | Price | +----+-----------------------+ | 1 | 7475433123.1727374747 | | 2 | 999.9999999999 | | 3 | 1363645345.1726364664 | | 4 | 1.1726364664 | | 5 | 0.9999999999 | +----+-----------------------+ 5 rows in set (0.00 sec)
แถวที่ 4 มีคำเตือน (Warning) เนื่องจากค่าต้นฉบับมีหลักมากกว่า 10 ตำแหน่งหลังจุดทศนิยม จึงถูกปัดเศษ/ตัดทิ้ง
หมายเหตุ: สำหรับราคา/เงิน ควรใช้ DECIMAL(18,2) หรือ DECIMAL(19,4) ตามมาตรฐานการเงิน