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

Truy vấn MySQL định dạng tiền tệ

Định dạng số tiền thành tiền tệ với FORMAT() và CONCAT()

Kết hợp FORMAT(so, 2) (2 chữ số thập phân, dấu phân cách nghìn) và CONCAT() thêm ký hiệu tiền tệ.

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

mysql> create table DemoTable ( Amount DECIMAL(15,4) ); 
mysql> insert into DemoTable values(90948484); 
mysql> insert into DemoTable values(1000000000); 
mysql> insert into DemoTable values(1535353536); 
mysql> insert into DemoTable values(773646463);

Truy vấn định dạng USD

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

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   | 
+----------------------+

Lưu ý:

  • Kết quả là VARCHAR, không dùng cho tính toán tiếp
  • FORMAT dùng locale mặc định (dấu phẩy nghìn, chấm thập phân). Locale Việt Nam dùng chấm nghìn, phẩy thập phân → cần thiết lập locale hoặc xử lý ứng dụng
  • MySQL 8.0+: FORMAT(Amount, 2, 'vi_VN') cho định dạng Việt Nam

Cách chuyên nghiệp hơn: Lưu số nguyên (cents/vnd) trong DB, format ở tầng ứng dụng (Java, PHP, Python...) với thư viện i18n chuẩn (ICU, NumberFormat).