Dưới đây là 3 cách để chuyển đổi một giá trị thập lục phân thành một số nguyên trong SQL Server.
Đầu tiên là hai hàm T-SQL cho phép bạn chuyển đổi một giá trị hex thành một số nguyên. Ngoài các chức năng này, còn có khái niệm chuyển đổi ngầm định, cũng có thể tạo ra kết quả tương tự.
Ví dụ 1 - Hàm CONVERT ()
Hàm đầu tiên chúng ta sẽ xem xét là CONVERT()
hàm số. Điều này cho phép bạn chuyển đổi giữa các kiểu dữ liệu trong SQL Server.
Dưới đây là một ví dụ về việc sử dụng hàm này để chuyển đổi giá trị thập lục phân thành số nguyên:
SELECT CONVERT(INT, 0xfcab) Result;
Kết quả:
+----------+ | Result | |----------| | 64683 | +----------+
Trong trường hợp này, chúng tôi chuyển đổi giá trị thập lục phân fcab
(có tiền tố là 0x
) thành một số nguyên.
Ví dụ 2 - Hàm CAST ()
Ngoài ra, chúng ta có thể sử dụng CAST()
để làm điều tương tự như ví dụ trước:
SELECT CAST(0xfcab AS INT) Result;
Kết quả:
+----------+ | Result | |----------| | 64683 | +----------+
Lưu ý rằng CAST()
và CONVERT()
sử dụng các cú pháp hơi khác nhau. Trong trường hợp của CAST()
giá trị được truyền đến trước, trong khi đó ngược lại với CONVERT()
.
Ví dụ 3 - Chuyển đổi ngầm định
Dưới đây là một ví dụ về việc thực hiện chuyển đổi ngầm định, chỉ đơn giản bằng cách nhân giá trị hex với 1:
SELECT 0xfcab * 1 Result;
Kết quả:
+----------+ | Result | |----------| | 64683 | +----------+
Ví dụ 4 - Định dạng Kết quả
Chúng tôi cũng có thể sử dụng FORMAT()
chức năng định dạng kết quả cuối cùng. Trong trường hợp này, chúng tôi vẫn sử dụng một hàm chuyển đổi để thực hiện chuyển đổi thực tế. Chỉ là chúng tôi cũng sử dụng FORMAT()
chức năng định dạng kết quả dưới dạng số (bằng cách sử dụng N
định dạng).
SELECT FORMAT(CAST(0xfcab AS INT), 'N') Result;
Kết quả:
+-----------+ | Result | |-----------| | 64,683.00 | +-----------+
Lưu ý rằng hàm này thực sự trả về kết quả dưới dạng một chuỗi.
Cũng lưu ý rằng FORMAT()
hàm chỉ chấp nhận kiểu dữ liệu số và ngày và giờ. Do đó, chúng tôi không thể chuyển trực tiếp giá trị thập lục phân vào hàm. Nếu chúng tôi cố gắng làm điều đó, đây là những gì sẽ xảy ra:
SELECT FORMAT(0xfcab, 'N') Result;
Kết quả:
Argument data type varbinary is invalid for argument 1 of format function.