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

จัดรูปแบบตัวเลข: จุด (.) คั่นพัน คอมม่า (,) คั่นทศนิยม ใน MySQL

ใช้ฟังก์ชัน FORMAT() พร้อม locale 'de_DE' (เยอรมัน) ซึ่งใช้จุดคั่นพันและคอมม่าคั่นทศนิยม

ตรวจสอบเวอร์ชัน MySQL

mysql> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 8.0.12    |
+-----------+

FORMAT() รองรับ locale ตั้งแต่ MySQL 5.5+

ไวยากรณ์

SELECT FORMAT(yourColumnName, decimalPlaces, 'de_DE') AS anyAliasName FROM yourTableName;

สร้างตารางตัวอย่าง

mysql> CREATE TABLE formatNumberDemo (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Number DECIMAL(19,1)
    -> );

เพิ่มข้อมูลตัวอย่าง

mysql> INSERT INTO formatNumberDemo(Number) VALUES
(10000000000000.2), (1000.4), (1000000.6), (100000000.7), (100000000000000000.8);

แสดงข้อมูลดิบ

mysql> SELECT * FROM formatNumberDemo;

ผลลัพธ์:

+----+----------------------+
| Id | Number               |
+----+----------------------+
| 1  | 10000000000000.2     |
| 2  | 1000.4               |
| 3  | 1000000.6            |
| 4  | 100000000.7          |
| 5  | 100000000000000000.8 |
+----+----------------------+

จัดรูปแบบด้วย FORMAT(..., 3, 'de_DE')

mysql> SELECT FORMAT(Number, 3, 'de_DE') AS Numberformat FROM formatNumberDemo;

ผลลัพธ์:

+-----------------------------+
| Numberformat                |
+-----------------------------+
| 10.000.000.000.000,200      |
| 1.000,400                   |
| 1.000.000,600               |
| 100.000.000,700             |
| 100.000.000.000.000.000,800 |
+-----------------------------+

Locale อื่นๆ ที่น่าสนใจ

LocaleThousands SepDecimal Sepตัวอย่าง
de_DE.,1.234,56
en_US,.1,234.56
fr_FRspace,1 234,56
th_TH,.1,234.56

ข้อจำกัด

  • คืนค่าเป็น VARCHAR ไม่ใช่ตัวเลข (ไม่สามารถคำนวณต่อได้โดยตรง)
  • ปัดเศษตาม decimalPlaces ที่ระบุ
  • locale ต้องติดตั้งในระบบปฏิบัติการหรือ MySQL รองรับ