ชนิดข้อมูล DECIMAL(precision, scale) ใน MySQL เหมาะสำหรับเก็บค่าเงินหรือค่าที่ต้องการความแม่นยำ สามารถใช้ SUM() บวกค่าได้อย่างถูกต้องโดยไม่สูญเสียความแม่นยำ
ตัวอย่างการสร้างตาราง
mysql> create table DemoTable (
Money DECIMAL(7,2) );
Query OK, 0 rows affected (0.58 sec)
เพิ่มข้อมูลทศนิยม
mysql> insert into DemoTable values(100.67); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable values(199.33); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values(500); Query OK, 1 row affected (0.19 sec) mysql> insert into DemoTable values(400); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(800); Query OK, 1 row affected (0.14 sec)
แสดงข้อมูลทั้งหมด
mysql> select * from DemoTable;
+--------+ | Money | +--------+ | 100.67 | | 199.33 | | 500.00 | | 400.00 | | 800.00 | +--------+ 5 rows in set (0.00 sec)
คำสั่ง SUM() บวกค่าทศนิยม
mysql> select sum(Money) from DemoTable;
ผลลัพธ์
+------------+ | sum(Money) | +------------+ | 2000.00 | +------------+ 1 row in set (0.00 sec)
คำอธิบาย: DECIMAL(7,2) หมายถึง รวม 7 หลัก (precision) โดยมี 2 หลักทศนิยม (scale) เหมาะสำหรับเงิน สกุลเงิน ไม่ควรใช้ FLOAT หรือ DOUBLE เพราะมีปัญหาความแม่นยำจุดลอย (floating point precision issues)