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

Chuỗi định dạng số chuẩn được hỗ trợ bởi FORMAT () trong SQL Server

Bài viết này cung cấp tham chiếu cho các từ định dạng số tiêu chuẩn có thể được sử dụng khi định dạng số bằng FORMAT() chức năng trong SQL Server. Các ví dụ bao gồm.

Một số ví dụ sử dụng mã định dạng chính xác (chúng bao gồm một hoặc hai chữ số được nối vào mã định dạng). Các chỉ định độ chính xác 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.

Chuỗi định dạng Mô tả / Ví dụ
C hoặc c

Tiền tệ . Chuyển đổi số thành một chuỗi biểu thị số tiền.

Có thể sử dụng công cụ xác định độ chính xác tùy chọn để chỉ định số vị trí thập phân.

Ví dụ (sử dụng các nền văn hóa khác nhau) :

SELECT 
  FORMAT(12.34, 'C', 'en-us') R1,
  FORMAT(012.34, 'C', 'iv') R2,
  FORMAT(12.34, 'C0', 'ja-jp') R3,
  FORMAT(12.54, 'c', 'vi-vn') R4,
  FORMAT(12.54, 'c0', 'en-au') R5,
  FORMAT(12.54, 'c4', 'en-gb') R6;
+--------+--------+------+---------+------+----------+
| R1     | R2     | R3   | R4      | R5   | R6       |
|--------+--------+------+---------+------+----------|
| $12.34 | ¤12.34 | ¥12  | 12,54 ₫ | $13  | £12.5400 |
+--------+--------+------+---------+------+----------+
D hoặc d

Số thập phân . Chuyển đổi số thành một chuỗi chữ số thập phân (0-9), bắt đầu bằng dấu trừ nếu số âm. Định dạng này chỉ được hỗ trợ cho các loại tích phân.

Nếu bộ chỉ định độ chính xác (tùy chọn) được sử dụng, nó sẽ chỉ định tổng số chữ số trong kết quả. Nếu số không có nhiều chữ số như vậy, nó sẽ được đệm bằng các số không ở bên trái.

Ví dụ :

SELECT 
  FORMAT(123, 'D') R1,
  FORMAT(123, 'D0') R2,
  FORMAT(123, 'D3') R3,
  FORMAT(123, 'd4') R4,
  FORMAT(0123, 'd5') R5,
  FORMAT(1.23, 'd') R6;
+------+------+------+------+-------+------+
| R1   | R2   | R3   | R4   | R5    | R6   |
|------+------+------+------+-------+------|
| 123  | 123  | 123  | 0123 | 00123 | NULL |
+------+------+------+------+-------+------+
E hoặc e

Hàm mũ (khoa học) . Chuyển đổi số thành một chuỗi có dạng “-d.ddd… E + ddd” hoặc “-d.ddd… e + ddd”, trong đó mỗi “d” biểu thị một chữ số (0-9). Chuỗi bắt đầu bằng dấu trừ nếu số âm. Chính xác một chữ số luôn đứng trước dấu thập phân.

Nếu một bộ chỉ định độ chính xác được sử dụng, nó sẽ chỉ định có bao nhiêu chữ số ở bên phải của dấu thập phân. Nếu bị bỏ qua, sáu chữ số sẽ xuất hiện ở bên phải của dấu thập phân.

Ví dụ :

SELECT 
  FORMAT(1024.1234567, 'E') R1,
  FORMAT(1024.1234567, 'E0') R2,
  FORMAT(1024.1234567, 'E3') R3,
  FORMAT(1024.1234567, 'e4') R4,
  FORMAT(1024.1234567, 'e7') R5;
+---------------+--------+------------+-------------+----------------+
| R1            | R2     | R3         | R4          | R5             |
|---------------+--------+------------+-------------+----------------|
| 1.024123E+003 | 1E+003 | 1.024E+003 | 1.0241e+003 | 1.0241235e+003 |
+---------------+--------+------------+-------------+----------------+
F hoặc f

Điểm cố định . Chuyển đổi số thành một chuỗi có dạng “-ddd.ddd…” trong đó mỗi “d” chỉ ra một chữ số (0-9). Chuỗi bắt đầu bằng dấu trừ nếu số âm.

Có thể sử dụng công cụ xác định độ chính xác tùy chọn để chỉ định số vị trí thập phân.

Ví dụ :

SELECT 
  FORMAT(12.345, 'F', 'en-us') R1,
  FORMAT(12.345, 'F0', 'en-us') R2,
  FORMAT(12.345, 'f3', 'en-us') R3,
  FORMAT(12.345, 'f4', 'en-us') R4,
  FORMAT(12.345, 'f5', 'en-us') R5,
  FORMAT(12.345, 'f', 'vi-vn') R6;
+-------+------+--------+---------+----------+-------+
| R1    | R2   | R3     | R4      | R5       | R6    |
|-------+------+--------+---------+----------+-------|
| 12.35 | 12   | 12.345 | 12.3450 | 12.34500 | 12,35 |
+-------+------+--------+---------+----------+-------+
G hoặc g

Chung . Chuyển đổi số thành ký hiệu điểm cố định hoặc ký hiệu khoa học nhỏ gọn hơn, tùy thuộc vào loại số và việc có xuất hiện bộ định nghĩa chính xác hay không.

Nếu bộ chỉ định độ chính xác (tùy chọn) được sử dụng, nó xác định số lượng chữ số có nghĩa tối đa có thể xuất hiện trong chuỗi kết quả. Nếu bị bỏ qua hoặc nếu giá trị bằng 0, thì độ chính xác được xác định bởi loại số.

Xem tài liệu .NET chính thức để biết giải thích về cách loại số có thể ảnh hưởng đến độ chính xác. Bạn có thể cần tham khảo chéo điều đó với tài liệu chính thức cho FORMAT() để xem cách mỗi kiểu số .NET ánh xạ tới kiểu số T-SQL.

Ví dụ :

SELECT 
  FORMAT(12.345, 'G', 'en-us') R1,
  FORMAT(12.345, 'G0', 'en-us') R2,
  FORMAT(12.345, 'g3', 'en-us') R3,
  FORMAT(12.345, 'g4', 'en-us') R4,
  FORMAT(12.345, 'g5', 'en-us') R5,
  FORMAT(12.345, 'g', 'vi-vn') R6;
+--------+--------+------+-------+--------+--------+
| R1     | R2     | R3   | R4    | R5     | R6     |
|--------+--------+------+-------+--------+--------|
| 12.345 | 12.345 | 12.3 | 12.35 | 12.345 | 12,345 |
+--------+--------+------+-------+--------+--------+
N hoặc n

Số . Chuyển đổi số thành chuỗi có dạng “-d, ddd, ddd.ddd…”.

Nếu bộ chỉ định độ chính xác (tùy chọn) được sử dụng, nó xác định số chữ số ở bên phải của dấu thập phân.

Ví dụ :

SELECT 
  FORMAT(1234.56, 'N', 'en-us') R1,
  FORMAT(1234.56, 'N0', 'en-us') R2,
  FORMAT(1234.56, 'n3', 'en-us') R3,
  FORMAT(1234.56, 'n4', 'en-us') R4,
  FORMAT(1234.56, 'n', 'vi-vn') R5;
+----------+-------+-----------+------------+----------+
| R1       | R2    | R3        | R4         | R5       |
|----------+-------+-----------+------------+----------|
| 1,234.56 | 1,235 | 1,234.560 | 1,234.5600 | 1.234,56 |
+----------+-------+-----------+------------+----------+
P hoặc p

Phần trăm . Nhân số với 100 và chuyển nó thành một chuỗi biểu thị phần trăm.

Nếu bộ chỉ định độ chính xác được sử dụng, nó sẽ xác định số vị trí thập phân.

Ví dụ :

SELECT 
  FORMAT(.1234, 'P', 'en-us') R1,
  FORMAT(.1234, 'P0', 'en-us') R2,
  FORMAT(.1250, 'p0', 'en-us') R3,
  FORMAT(.1250, 'p3', 'en-us') R4,
  FORMAT(.1250, 'p', 'vi-vn') R5;
+---------+------+------+----------+--------+
| R1      | R2   | R3   | R4       | R5     |
|---------+------+------+----------+--------|
| 12.34 % | 12 % | 13 % | 12.500 % | 12,50% |
+---------+------+------+----------+--------+
R hoặc r

Khứ hồi . Cố gắng đảm bảo rằng một giá trị số được chuyển đổi thành một chuỗi được phân tích cú pháp trở lại thành cùng một giá trị số.

Mã định dạng chính xác bị bỏ qua khi sử dụng mã định dạng này.

LƯU Ý :Trong .NET, chỉ định định dạng này chỉ được hỗ trợ bởi Single , Đôi BigInteger số loại. Ngoài ra, đối với Double giá trị, chỉ định định dạng này trong một số trường hợp không thể làm tròn thành công giá trị ban đầu. Nó cũng mang lại hiệu suất kém khi được sử dụng với Double Đơn các loại.

Ngoài ra, tài liệu .NET khuyến nghị rằng công cụ chỉ định định dạng này được sử dụng cho BigInteger chỉ gõ. Nó khuyến nghị rằng Double loại sử dụng G17 Đơn loại sử dụng G9 .

Điều này có nghĩa là gì đối với SQL Server? Về cơ bản, bạn có thể nên tránh chỉ định định dạng này trong SQL Server. Thay vào đó, hãy sử dụng G17 cho float kiểu dữ liệu và G9 cho thực kiểu dữ liệu.

Ví dụ
Dưới đây là một ví dụ so sánh R công cụ định dạng với G17G9 .

DECLARE @myFloat float, @myReal real;
SET @myFloat = '123456789.1234567';
SET @myReal = @myFloat;
SELECT 
  @myFloat 'Float Value', 
  @myReal 'Real Value';
SELECT 
  FORMAT(@myFloat, 'R') 'Float R',
  FORMAT(@myFloat, 'G17') 'Float G17',
  FORMAT(@myReal, 'R') 'Real R',
  FORMAT(@myReal, 'G9') 'Real G9';
+------------------+--------------+
| Float Value      | Real Value   |
|------------------+--------------|
| 123456789.123457 | 1.234568E+08 |
+------------------+--------------+
(1 row affected)
+-------------------+-------------------+-----------+-----------+
| Float R           | Float G17         | Real R    | Real G9   |
|-------------------+-------------------+-----------+-----------|
| 123456789.1234567 | 123456789.1234567 | 123456792 | 123456792 |
+-------------------+-------------------+-----------+-----------+
(1 row affected)
X hoặc x

Hệ thập lục phân . Chuyển đổi số thành một chuỗi các chữ số thập lục phân.

Trường hợp được sử dụng (tức là X hoặc x ) chỉ định sử dụng ký tự viết hoa hay viết thường cho các chữ số thập lục phân lớn hơn 9. Điều này là do giá trị thập lục phân có thể bao gồm các ký tự sau; 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e và f (một trong hai trường hợp). Chữ hoa và chữ thường đại diện cho cùng một giá trị khi sử dụng hệ thập lục phân (ví dụ:fF cả hai đều chuyển đổi thành 15 trong số thập phân).

Mã định dạng này chỉ được hỗ trợ cho các loại tích phân.

Nếu bộ chỉ định độ chính xác (tùy chọn) được sử dụng, nó chỉ định tổng số chữ số trong kết quả. Nếu số không có nhiều chữ số như vậy, nó sẽ được đệm bằng các số không ở bên trái.

Ví dụ :

SELECT 
  FORMAT(123, 'X') R1,
  FORMAT(123, 'x') R2,
  FORMAT(123, 'x6') R3,
  FORMAT(12345678, 'x') R4,
  FORMAT(123, 'x6') R5,
  FORMAT(-123, 'x') R6,
  FORMAT(1.23, 'X') R7;
+------+------+--------+--------+--------+----------+------+
| R1   | R2   | R3     | R4     | R5     | R6       | R7   |
|------+------+--------+--------+--------+----------+------|
| 7B   | 7b   | 00007b | bc614e | 00007b | ffffff85 | NULL |
+------+------+--------+--------+--------+----------+------+

Danh sách trên là danh sách đầy đủ các chuỗi định dạng số tùy chỉnh .NET hợp lệ, dựa trên thông tin từ tài liệu .NET chính thức cho Chuỗi định dạng số chuẩn trên trang web của Microsoft tại thời điểm viết bài.

Lý do vì những điều này có liên quan đến SQL Server FORMAT() chức năng là chức năng này chỉ chấp nhận các chuỗi định dạng .NET Framework hợp lệ.

Ngoài tiêu chuẩn trên chuỗi định dạng, bạn cũng có thể sử dụng tùy chỉnh định dạng chuỗi. Dưới đây là danh sách đầy đủ các Chuỗi định dạng số tùy chỉnh mà bạn có thể sử dụng với SQL Server.

Bạn cũng có thể định dạng giá trị ngày và giờ. Xem danh sách Chuỗi định dạng ngày và giờ chuẩn cũng như Chuỗi định dạng ngày và giờ tùy chỉnh mà bạn có thể sử dụng với FORMAT() chức năng.

Nếu bạn vẫn đang cố gắng hiểu chuỗi định dạng thậm chí là gì, hãy xem Chuỗi định dạng trong SQL Server là gì? để hiểu cơ bản về các chuỗi định dạng và cách chúng liên quan đến FORMAT() hàm số.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi:Không thể lồng nhau câu lệnh INSERT EXEC. và Không thể sử dụng câu lệnh ROLLBACK trong câu lệnh INSERT-EXEC. Làm thế nào để giải quyết điều này?

  2. Tổng hợp chuỗi được nhóm / LISTAGG cho SQL Server

  3. Tạo mặt nạ dữ liệu động trong SQL Server cho người dùng nâng cao

  4. Cách xóa khoảng trắng hàng đầu trong SQL Server - LTRIM ()

  5. Gói điều chỉnh Spotlight Cơ bản:Công cụ tối ưu hóa SQL miễn phí tốt nhất