PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Định dạng số với dấu phẩy trong PostgreSQL

Trong PostgreSQL, chúng ta có thể sử dụng TO_CHAR() chức năng để định dạng số theo một định dạng nhất định. Điều này bao gồm định dạng các số có dấu phẩy ở vị trí thích hợp.

PostgreSQL cũng có money kiểu dữ liệu, xuất ra giá trị bằng ngôn ngữ hiện tại. Điều này có thể bao gồm dấu phẩy ở vị trí thích hợp, dựa trên ngôn ngữ đang được sử dụng.

TO_CHAR() Chức năng

Đây là một ví dụ về việc sử dụng TO_CHAR() hàm xuất một số có dấu phẩy:

SELECT TO_CHAR(123456.78, 'fm999G999D99');

Kết quả:

123,456.78

Đối số thứ hai bao gồm một loạt các mẫu mẫu số xác định cách đối số đầu tiên được định dạng.

Ở đây, tôi đã sử dụng G mẫu mẫu cho dấu phân tách nhóm nhận biết ngôn ngữ (còn được gọi là "dấu phân cách hàng nghìn"). Tôi có thể đã sử dụng dấu phẩy (, ), nhưng điều đó sẽ không nhận biết được ngôn ngữ.

Tôi cũng đã sử dụng D mẫu mẫu cho dấu phân tách thập phân nhận biết ngôn ngữ.

Trong trường hợp này, tôi cũng đã sử dụng fm (là viết tắt của “Chế độ điền”) để loại bỏ mọi số 0 ở cuối và khoảng trống ở đầu có thể đã được tự động áp dụng cho kết quả.

9 mẫu mẫu dành cho mỗi chữ số. Bạn có thể sử dụng 0 thay vào đó nếu bạn muốn bao gồm các số 0 ở đầu.

GD các mẫu mẫu nhận biết được ngôn ngữ, chúng có thể tạo ra ký tự thích hợp cho nhóm và dấu phân tách thập phân.

Dưới đây là một ví dụ để chứng minh ý tôi muốn nói:

SET lc_numeric = 'fr_FR';
SELECT TO_CHAR(123456.78, 'fm999G999D99');

Kết quả:

123,456.78

Bây giờ, dấu phân tách nhóm được biểu thị bằng dấu chấm / dấu chấm đầy đủ và dấu phân tách thập phân được biểu thị bằng dấu phẩy. Điều này là do tôi đã thay đổi lc_numeric biến để sử dụng fr_FR (đối với Pháp), và theo thông lệ của Pháp, dấu phân tách nhóm và dấu thập phân được biểu diễn theo cách này.

Các ngôn ngữ khác nhau có các quy ước khác nhau để định dạng số và GD công cụ sửa đổi định dạng có thể xác định ký tự nào sẽ sử dụng cho dấu phân tách nhóm và dấu phân tách thập phân.

money Loại dữ liệu

PostgreSQL có money kiểu dữ liệu xuất ra các giá trị của nó được định dạng theo kiểu nhận biết ngôn ngữ.

Ví dụ:

SET lc_monetary = 'en_US';
SELECT CAST(123456.78 AS money);

Kết quả:

$123,456.78

Bây giờ chúng ta hãy thay đổi lc_monetary và xem điều này ảnh hưởng như thế nào đến kết quả:

SET lc_monetary = 'fr_FR';
SELECT CAST(123456.78 AS money);

Kết quả:

123 456,78 Eu

Trong trường hợp này, dấu phân tách nhóm được biểu thị bằng dấu cách và dấu phân tách thập phân là dấu phẩy.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL - đặt giá trị ô mặc định theo giá trị ô khác

  2. SQL LIKE điều kiện để kiểm tra số nguyên?

  3. Spring + Hibernate:Sử dụng bộ nhớ cache của gói truy vấn

  4. Truy vấn SQL để tìm bản ghi có ID không có trong bảng khác

  5. Làm cách nào để nhập dữ liệu từ CSV vào bảng Postgres bằng pgAdmin 3?