Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

แปลงตัวเลขเป็นรูปแบบสกุลเงินใน MySQL ด้วย FORMAT() และ CONCAT()

การจัดรูปแบบตัวเลขเป็น Currency

ใช้ FORMAT() จัดรูปแบบตัวเลขพร้อม comma แล้ว CONCAT() เพิ่มสัญลักษณ์สกุลเงิน

รูปแบบคำสั่ง

SELECT CONCAT('CurrencySymbol', FORMAT(yourColumnName, decimalPlaces)) AS anyVariableName
FROM yourTableName;

ตัวอย่างสร้างตารางและข้อมูล

mysql> CREATE TABLE AddingCurrencySymbolDemo (
    -> Amount INT
    -> );
Query OK, 0 rows affected (1.50 sec)

mysql> INSERT INTO AddingCurrencySymbolDemo VALUES(250);
mysql> INSERT INTO AddingCurrencySymbolDemo VALUES(500);
mysql> INSERT INTO AddingCurrencySymbolDemo VALUES(1000);
mysql> INSERT INTO AddingCurrencySymbolDemo VALUES(750);

ข้อมูลต้นฉบับ

mysql> SELECT * FROM AddingCurrencySymbolDemo;
+--------+
| Amount |
+--------+
| 250    |
| 500    |
| 1000   |
| 750    |
+--------+
4 rows in set (0.00 sec)

คำสั่งแปลงเป็นรูปแบบเงิน (ดอลลาร์ ไม่มีทศนิยม)

mysql> SELECT CONCAT('$', FORMAT(Amount, 0)) AS AddedCurrency 
    -> FROM AddingCurrencySymbolDemo;
+---------------+
| AddedCurrency |
+---------------+
| $250          |
| $500          |
| $1,000        |
| $750          |
+---------------+
4 rows in set (0.00 sec)

FORMAT(number, decimals) รายละเอียด:

  • ปัดเศษตามจำนวนทศนิยมที่กำหนด
  • เพิ่ม comma ทุก 3 หลัก (thousands separator)
  • คืนค่าเป็น STRING ไม่ใช่ NUMBER
  • ใช้ locale ของ server สำหรับ decimal point และ thousands separator

ตัวอย่างเพิ่มเติม:

-- บาทไทย 2 ทศนิยม
SELECT CONCAT('฿', FORMAT(amount, 2)) FROM transactions;

-- ใช้ CONCAT_WS สำหรับ space
SELECT CONCAT_WS(' ', 'USD', FORMAT(amount, 2)) FROM orders;

-- เก็บเป็น computed column (MySQL 5.7+)
ALTER TABLE orders ADD COLUMN price_formatted VARCHAR(20) 
GENERATED ALWAYS AS (CONCAT('$', FORMAT(price, 2))) STORED;