Câu trả lời này với những gì trông giống như cùng một câu hỏi:MS SQL server - chuyển đổi chuỗi HEX để nguyên
Convert integer to hex and hex to integer
..does không làm việc cho tôi.
Tôi không thể đi đến chuỗi HEX đến số nguyên bằng cách sử dụng MS SQL server 2005 CAST hoặc CONVERT. Tôi có thiếu cái gì tầm thường? Tôi đã tìm kiếm rộng rãi, và tốt nhất mà tôi có thể tìm thấy là các hàm người dùng có độ dài dài để đi từ một giá trị chuỗi hex đến một cái gì đó trông giống như một số thập phân int. Chắc chắn có một cách đơn giản để làm điều này trực tiếp trong một truy vấn bằng cách sử dụng các hàm dựng sẵn thay vì viết một hàm người dùng?
Cảm ơn
Chỉnh sửa để bao gồm ví dụ:
chọn CONVERT (INT, 0x89)
công trình như mong đợi, nhưng
chọn CONVERT (INT, ' Chuỗi con 0x '+ (msg, 66, 2)) từ somet2
giúp tôi:
"Chuyển đổi không thành công khi chuyển đổi giá trị varchar '0x89' thành kiểu dữ liệu int."
một CAST rõ ràng thêm:
chọn CONVERT (INT, CAST ('0x89' AS VARBINARY))
thực thi, nhưng trả 813185081.
thay thế 'Int', 'Thập phân', v.v. đối với 'Biến thể' dẫn đến lỗi. Nói chung, các chuỗi có vẻ là số được hiểu là số nếu được yêu cầu, nhưng không phải trong trường hợp này và có vẻ như không phải là một CAST nhận dạng HEX. Tôi muốn nghĩ rằng có một cái gì đó đơn giản và rõ ràng và tôi đã bỏ lỡ nó.
Microsoft SQL Server Management Studio Express 9.00.3042.00
Microsoft SQL Server 2005 - 9.00.3080.00 (Intel X86) ngày 06 tháng chín năm 2009 1:43:32 Bản quyền (c) 1988-2005 Microsoft Corporation Express Edition với các dịch vụ nâng cao trên Windows NT 5.1 (Bản dựng 2600: Gói dịch vụ 3)
Tóm lại: Tôi muốn lấy một chuỗi hex là một giá trị trong bảng và hiển thị nó như một phần của kết quả truy vấn một số nguyên thập phân, chỉ sử dụng các hàm được hệ thống xác định, chứ không phải UDF.
Bạn có gặp phải lỗi cụ thể hoặc kết quả không mong muốn không? Ví dụ sẽ hữu ích. – LittleBobbyTables
"Không có nghĩa là gì"? CONVERT() là một hàm dựng sẵn và rất khó có khả năng nó không hoạt động. Vì vậy, hãy đăng phiên bản và ấn bản MSSQL của bạn, cộng với kết quả chạy hai truy vấn SELECT từ câu trả lời bạn đã liên kết đến: SELECT CONVERT (VARBINARY (8), 16777215) và SELECT CONVERT (INT, 0xFFFFFF) – Pondlife
Bạn đã thấy điều này chưa? Xem các bình luận ... http://blog.sqlauthority.com/2010/02/01/sql-server-question-how-to-convert-hex-to-decimal/ –