Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Hiển thị tiền tệ USD đúng định dạng với FORMAT() trong MySQL

Giới thiệu

Hàm FORMAT(number, decimals) định dạng số với dấu phẩy phân cách hàng nghìn và số chữ số thập phân cố định. Kết hợp CONCAT() để thêm ký hiệu tiền tệ.

1. Tạo bảng và dữ liệu

mysql> create table DemoTable (
    -> Amount DECIMAL(15,4)
    -> ); 
Query OK, 0 rows affected (0.75 sec)

mysql> insert into DemoTable values(90948484); 
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values(1000000000); 
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values(1535353536); 
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values(773646463); 
Query OK, 1 row affected (0.20 sec)

2. Dữ liệu gốc

mysql> select *from DemoTable;
+-----------------+
| Amount          |
+-----------------+
| 90948484.0000   |
| 1000000000.0000 |
| 1535353536.0000 |
| 773646463.0000  |
+-----------------+
4 rows in set (0.00 sec)

3. Định dạng tiền tệ USD

mysql> select concat('USD ', format(Amount, 2)) as Currency from DemoTable;

4. Kết quả

+----------------------+
| Currency             |
+----------------------+
| USD 90,948,484.00    |
| USD 1,000,000,000.00 |
| USD 1,535,353,536.00 |
| USD 773,646,463.00   |
+----------------------+
4 rows in set (0.23 sec)

Giải thích:

  • FORMAT(Amount, 2): Làm tròn 2 chữ số thập phân, thêm dấu phẩy hàng nghìn
  • CONCAT('USD ', ...): Nối tiền tố
  • Kết quả kiểu VARCHAR

Mở rộng: Hỗ trợ locale (MySQL 8.0+)

-- Định dạng theo locale Việt Nam (dấu chấm phân cách nghìn, phẩy thập phân)
SELECT FORMAT(Amount, 2, 'vi_VN'); -- 90.948.484,00

-- Đa ngôn ngữ
SELECT FORMAT(1234567.89, 2, 'en_US'); -- 1,234,567.89
SELECT FORMAT(1234567.89, 2, 'de_DE'); -- 1.234.567,89

Lưu ý: FORMAT làm tròn (round), không cắt bỏ (truncate). Dùng TRUNCATE() nếu cần cắt bỏ.