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 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 và 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 và Đơ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
Đ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
Ví dụ 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à 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ố.