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

Cách định dạng số trong SQL Server

Bắt đầu từ SQL Server 2012, bạn có thể định dạng kiểu số bằng T-SQL FORMAT() hàm số. Hàm này chấp nhận ba đối số; số, định dạng và đối số "văn hóa" tùy chọn.

Nó trả về một chuỗi được định dạng kiểu nvarchar .

Định dạng được cung cấp dưới dạng chuỗi định dạng. Chuỗi định dạng xác định cách định dạng đầu ra.

Đây là một ví dụ:

SELECT FORMAT(1, 'N');

Kết quả:

1.00

Trong trường hợp này, tôi đã sử dụng N như đối số thứ hai. Đây là định dạng số tiêu chuẩn cho Số. Bộ định dạng cụ thể này (N ) dẫn đến kết quả đầu ra được định dạng với các chữ số tích phân và thập phân, dấu phân cách nhóm và dấu phân cách thập phân có dấu âm tùy chọn. Đối số này không phân biệt chữ hoa chữ thường, vì vậy N hoặc n ổn.

Vị trí thập phân

Đây là một ví dụ khác, lần này sử dụng N1 để xác định rằng chúng tôi chỉ muốn một chữ số thập phân:

SELECT FORMAT(1, 'N1');

Kết quả:

1.0

Nhưng bạn cũng có thể tăng số vị trí thập phân:

SELECT FORMAT(1, 'N7');

Kết quả:

1.0000000

Trong các ví dụ này, 17 được gọi là bộ chỉ định độ chính xác .

Các thông số kỹ thuật chính xác là tùy chọn. Chúng có thể là một giá trị từ 0 đến 99, chỉ định độ chính xác của kết quả. Cách nó hoạt động phụ thuộc vào định dạng định dạng đang được sử dụng. Đối với một số chỉ định định dạng, nó sẽ chỉ định tổng số chữ số trong kết quả, đối với những người khác, nó sẽ chỉ định số vị trí thập phân. Trong các trường hợp khác, nó sẽ bị bỏ qua hoàn toàn. Xem danh sách đầy đủ các mã định dạng số tiêu chuẩn để xem các mã định độ chính xác ảnh hưởng như thế nào đến kết quả đầu ra từ mỗi mã định dạng.

Phần trăm

Các ví dụ sau sử dụng P đối số, định dạng số dưới dạng giá trị phần trăm. Nó nhân số với 100, sau đó thêm dấu phần trăm được bản địa hóa.

SELECT 
    FORMAT(1, 'P') AS 'Example 1', 
    FORMAT(.375, 'P') AS 'Example 2', 
    FORMAT(.0375, 'P', 'tr-tr') AS 'Example 3';

Kết quả:

Example 1  Example 2  Example 3
---------  ---------  ---------
100.00 %   37.50 %    %3,75   

Lưu ý rằng “Ví dụ 3” bao gồm đối số thứ ba, chỉ định văn hóa sẽ được sử dụng trong đầu ra. Trong trường hợp này, tôi sử dụng tr-tr cho tiếng Thổ Nhĩ Kỳ. Điều này dẫn đến dấu phần trăm được thêm vào trước số (thay vì được thêm vào như những dấu khác). Nó cũng dẫn đến dấu phẩy được sử dụng làm dấu phân tách thập phân.

Nếu bạn không cung cấp đối số "văn hóa", ngôn ngữ của phiên hiện tại sẽ được sử dụng.

Như bạn có thể tưởng tượng, bạn có thể nhận được các kết quả khá khác nhau tùy thuộc vào ngôn ngữ hiện tại của bạn hoặc giá trị của bất kỳ lập luận “văn hóa” nào. Xem Cách cài đặt ngôn ngữ có thể ảnh hưởng đến kết quả FORMAT () của bạn để biết thêm ví dụ.

Tiền tệ

Bạn có thể sử dụng C để trả về giá trị tiền tệ.

SELECT FORMAT(1, 'C');

Kết quả:

$1.00

Bạn cũng có thể thêm ngôn ngữ làm tham số thứ ba.

Dưới đây là một số ví dụ:

SELECT 
    FORMAT(1, 'C', 'fr-FR') AS France, 
    FORMAT(1, 'C', 'th-TH') AS Thailand, 
    FORMAT(1, 'C', 'ja-JP') AS Japan;

Kết quả:

France  Thailand  Japan
------  --------  -----
1,00 €  ฿1.00     ¥1   

Hàm mũ (Khoa học)

Bạn có thể sử dụng E để chỉ định ký hiệu theo cấp số nhân.

SELECT FORMAT(1234.56789, 'E');

Kết quả:

1.234568E+003  

Hệ thập lục phân

Bạn thậm chí có thể định dạng một số dưới dạng thập lục phân. Để thực hiện việc này, hãy sử dụng X đối số:

SELECT FORMAT(10, 'X');

Kết quả:

A

Hệ thập lục phân là cơ số 16. Do đó, số đếm đi 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F trước khi bắt đầu lại (ví dụ:10 trong hệ thập lục phân là số tương đương của 16 trong hệ thập phân và 11 tương đương với 17, v.v.). Đó là lý do tại sao ví dụ ở đây dẫn đến A , bởi vì trong hệ thập lục phân, A đến sau 9 .

Đây là một ví dụ khác, lần này với số lượng lớn hơn:

SELECT FORMAT(7145, 'X');

Kết quả:

1BE9

Định dạng tùy chỉnh

Bạn cũng có thể tạo định dạng tùy chỉnh của riêng mình bằng cách sử dụng chuỗi định dạng số tùy chỉnh. Điều này bao gồm một loạt các mã định dạng số tùy chỉnh cung cấp một mẫu cho số của bạn.

Điều này được giải thích dễ dàng hơn với một ví dụ:

SELECT FORMAT(123456789, '##-###-####');

Kết quả:

12-345-6789

Trong trường hợp này, tôi sử dụng trình giữ chỗ chữ số (# ). Phần giữ chỗ chữ số cho phép tôi chỉ định định dạng cho số bằng cách sử dụng # biểu tượng như một trình giữ chỗ cho mỗi số.

Dấu phẩy

Một ví dụ khác:

SELECT FORMAT(123456789, '#,#');

Kết quả:

123,456,789

Zeros hàng đầu

Một công cụ xác định định dạng số tùy chỉnh khác bằng 0 (0 ). Bạn có thể sử dụng điều này để chèn một số bằng các số 0 ở đầu:

SELECT
    FORMAT(7, '000') AS 'Example 1',
    FORMAT(123, '0000') AS 'Example 2',
    FORMAT(123, '00000') AS 'Example 3';

Kết quả:

Example 1  Example 2  Example 3
---------  ---------  ---------
007        0123       00123    

Bạn cũng có thể sử dụng nó để loại bỏ các số không:

SELECT 
    FORMAT(0123, '000') AS 'Example 1',
    FORMAT(0123, '0000') AS 'Example 2',
    FORMAT(000123, '00000') AS 'Example 3';

Kết quả:

Example 1  Example 2  Example 3
---------  ---------  ---------
123        0123       00123    

Tham chiếu thông số định dạng số

Các bài viết sau chứa tất cả các từ định dạng số mà bạn có thể sử dụng với FORMAT() cùng với các ví dụ T-SQL.

  • Chuỗi định dạng số chuẩn
  • Chuỗi định dạng số tùy chỉnh

Đây là các mã định dạng giống nhau được hỗ trợ bởi .NET Framework (FORMAT() chức năng dựa trên .NET Framework).

Ngày và giờ

FORMAT() chức năng này cũng cho phép bạn định dạng ngày và giờ.

Ngày và giờ có một tập hợp các chỉ định định dạng riêng biệt:

  • Chuỗi định dạng ngày và giờ chuẩn
  • Chuỗi định dạng ngày và giờ tùy chỉnh

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách thay đổi kiểu dữ liệu cột trong cơ sở dữ liệu SQL mà không làm mất dữ liệu

  2. 2 cách trả về tất cả các hàm do người dùng xác định trong cơ sở dữ liệu máy chủ SQL

  3. Sự khác biệt giữa các hàm được định giá trong bảng của nhiều câu lệnh &các hàm được định giá trong bảng trong dòng trong SQL Server

  4. Cách thực hiện CẬP NHẬT truy vấn chuyển qua trong SQL Server

  5. Cách đặt ngôn ngữ hiện tại trong SQL Server (T-SQL)