Trong MariaDB, FORMAT()
là một hàm chuỗi tích hợp để định dạng và trả về số đã cho dưới dạng một chuỗi.
Nó yêu cầu hai đối số và chấp nhận một đối số thứ ba tùy chọn. Đầu tiên là số bạn muốn định dạng, thứ hai là vị trí thập phân và thứ ba (tùy chọn) là ngôn ngữ.
Cú pháp
Cú pháp như sau:
FORMAT(num, decimal_position[, locale])
Ở đâu num
là số, decimal_position
là số vị trí thập phân để làm tròn số và locale
là một ngôn ngữ tùy chọn để sử dụng để định dạng số (các ngôn ngữ khác nhau sử dụng các quy ước khác nhau để định dạng số).
Ví dụ
Đây là một ví dụ cơ bản:
SELECT FORMAT(1234.5678, 2);
Kết quả:
+----------------------+ | FORMAT(1234.5678, 2) | +----------------------+ | 1,234.57 | +----------------------+
Đây, FORMAT()
đã thêm dấu phẩy cho dấu phân cách hàng nghìn. Nó cũng làm tròn số thành hai chữ số thập phân (vì tôi đã chỉ định 2 làm đối số thứ hai).
Xóa phần phân số
Để xóa phần phân số (và dấu thập phân liên quan của nó), hãy sử dụng 0
(không) làm đối số thứ hai:
SELECT FORMAT(1234.5678, 0);
Kết quả:
+----------------------+ | FORMAT(1234.5678, 0) | +----------------------+ | 1,235 | +----------------------+
Thêm vị trí thập phân
Nếu đối số thứ hai là một số cao hơn số vị trí thập phân trong đối số đầu tiên, các số không sẽ được thêm vào kết quả để nó phản ánh số vị trí thập phân mong muốn:
SELECT
FORMAT(1234, 2),
FORMAT(1234.56, 4),
FORMAT(1234.56, 8);
Kết quả:
+-----------------+--------------------+--------------------+ | FORMAT(1234, 2) | FORMAT(1234.56, 4) | FORMAT(1234.56, 8) | +-----------------+--------------------+--------------------+ | 1,234.00 | 1,234.5600 | 1,234.56000000 | +-----------------+--------------------+--------------------+
Chỉ định một ngôn ngữ
Bạn có thể tùy chọn chuyển đối số thứ ba để chỉ định ngôn ngữ sử dụng cho định dạng.
Ví dụ:
SELECT
FORMAT(1234567.8912, 2, 'da_DK') AS "da_DK",
FORMAT(1234567.8912, 2, 'rm_CH') AS "rm_CH",
FORMAT(1234567.8912, 2, 'es_BO') AS "es_BO",
FORMAT(1234567.8912, 2, 'ar_SA') AS "ar_SA";
Kết quả:
+--------------+--------------+------------+------------+ | da_DK | rm_CH | es_BO | ar_SA | +--------------+--------------+------------+------------+ | 1.234.567,89 | 1'234'567,89 | 1234567,89 | 1234567.89 | +--------------+--------------+------------+------------+
Đối số không phải dạng số
FORMAT()
chỉ định dạng số. Ví dụ:cung cấp một chuỗi cho kết quả là 0
được trả lại. Tuy nhiên, nó vẫn được định dạng thành vị trí thập phân được chỉ định:
SELECT
FORMAT("Twenty five", 0),
FORMAT("Twenty five", 2),
FORMAT("Twenty five", 4);
Kết quả:
+--------------------------+--------------------------+--------------------------+ | FORMAT("Twenty five", 0) | FORMAT("Twenty five", 2) | FORMAT("Twenty five", 4) | +--------------------------+--------------------------+--------------------------+ | 0 | 0.00 | 0.0000 | +--------------------------+--------------------------+--------------------------+
Đối số rỗng
Cung cấp null
vì một trong hai đối số đầu tiên dẫn đến null
:
SELECT
FORMAT(null, 2),
FORMAT(25, null);
Kết quả:
+-----------------+------------------+ | FORMAT(null, 2) | FORMAT(25, null) | +-----------------+------------------+ | NULL | NULL | +-----------------+------------------+
Nhưng chuyển null
vì đối số thứ ba không ảnh hưởng đến kết quả:
SELECT FORMAT(25, 2, null);
Kết quả:
+---------------------+ | FORMAT(25, 2, null) | +---------------------+ | 25.00 | +---------------------+
Chỉ đưa ra một lập luận
Việc cung cấp một đối số duy nhất dẫn đến lỗi:
SELECT FORMAT(1234.56);
Kết quả:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
Không đưa ra tranh luận
Đang gọi FORMAT()
mà không chuyển bất kỳ đối số nào dẫn đến lỗi:
SELECT FORMAT();
Kết quả:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1