Giới thiệu
Hàm FORMAT(N, D) định dạng số N với D chữ số thập phân, thêm dấu phẩy phân cách hàng nghìn (locale mặc định en_US). Phù hợp hiển thị báo cáo, UI.
Ví dụ thực hành
1. Tạo bảng DemoTable859
mysql> CREATE TABLE DemoTable859 (Number BIGINT);
2. Chèn số lớn
mysql> INSERT INTO DemoTable859 VALUES (747464646473737),(3836365366464),(8376437647433);
3. Định dạng 0 chữ số thập phân
mysql> SELECT FORMAT(Number, 0) AS HumanReadableFormat FROM DemoTable859;
4. Kết quả
+---------------------+
| HumanReadableFormat |
+---------------------+
| 747,464,646,473,737 |
| 3,836,365,366,464 |
| 8,376,437,647,433 |
+---------------------+
Các tham số và biến thể
| Gọi hàm | Kết quả (ví dụ 1234567.89) | Ghi chú |
|---|---|---|
FORMAT(1234567.89, 0) | 1,234,568 | Làm tròn, không thập phân |
FORMAT(1234567.89, 2) | 1,234,567.89 | 2 chữ số thập phân |
FORMAT(1234567.89, 2, 'de_DE') | 1.234.567,89 | Locale Đức (dấu chấm nghìn, phẩy thập phân) - MySQL 8.0+ |
Lưu ý quan trọng
- Kết quả là chuỗi (VARCHAR), không phải số. Không dùng trực tiếp cho tính toán tiếp.
- Làm tròn theo quy tắc(round half up).
- Locale: MySQL 8.0+ hỗ trợ tham số locale thứ 3. Trước đó chỉ en_US.
- Hiệu suất: OK cho hiển thị. Không dùng trong WHERE/ORDER BY/JOIN.
Định dạng tiền tệ Việt Nam
-- VN: dấu chấm phân cách nghìn, không thập phân (VND)
SELECT CONCAT(FORMAT(amount, 0), ' ₫') FROM payments;
-- Hoặc dùng CONVERT/CAST nếu cần tính toán
SELECT amount FROM payments ORDER BY amount DESC;