Một số DBMS cung cấp cho chúng tôi khả năng định dạng một số như một đơn vị tiền tệ bằng cách cung cấp một định dạng định dạng cho ký hiệu tiền tệ. Việc cung cấp công cụ định dạng như vậy cho phép DBMS trả về ký hiệu tiền tệ thích hợp cho ngôn ngữ.
MySQL không có công cụ xác định định dạng tiền tệ và do đó, chúng tôi cần thực hiện thêm một chút công việc nếu chúng tôi muốn trả lại ký hiệu tiền tệ.
Ví dụ
Dưới đây là một ví dụ về việc trả về một số dưới dạng đơn vị tiền tệ trong MySQL:
SELECT CONCAT('$', FORMAT(1234.5678, 2));
Kết quả:
$1,234.57
Ở đây, chúng tôi đã sử dụng CONCAT()
có chức năng ghép ký hiệu tiền tệ và số. Chúng tôi cũng đã sử dụng FORMAT()
chức năng định dạng số ở định dạng mong muốn.
Chỉ định ngôn ngữ
FORMAT()
hàm chấp nhận một đối số thứ ba tùy chọn cho ngôn ngữ. Điều này cho phép bạn định dạng số bằng ngôn ngữ được chỉ định.
Ví dụ:
SELECT CONCAT('€', FORMAT(1234.5678, 2, 'de_DE'));
Kết quả:
€1.234,57
Trong trường hợp này, ký hiệu tiền tệ của chúng tôi là ký hiệu Euro (€
) thay vì ký hiệu đô la và chúng tôi chỉ định rằng số phải được định dạng bằng cách sử dụng quy ước đánh số của Đức, sử dụng dấu chấm cho dấu phân tách nhóm và dấu phẩy cho dấu thập phân.
Định dạng trong Ứng dụng so với Cơ sở dữ liệu
Chúng tôi thường khuyến nghị rằng định dạng tiền tệ, v.v. được thực hiện ở cấp ứng dụng, thay vì ở cấp cơ sở dữ liệu. Môi trường lập trình ứng dụng thường có khả năng định dạng tốt hơn DBMS và tốt hơn là có dữ liệu chưa được định dạng được DB trả về, để ứng dụng có thể bắt đầu với một phương tiện chặn rõ ràng và định dạng nó khi cần.
Điều đó nói rằng, đôi khi tình huống yêu cầu định dạng ở cấp cơ sở dữ liệu, trong trường hợp đó, các kỹ thuật trên có thể hữu ích.