خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
تبدیل مقادیر هگزادسیمال به عدد صحیح در SQL Server
در مطلب به چندین روش، مقادیر هگزادسیمال به یک عدد صحیح در SQL Server تبدیل خواهیم کرد. دو تابع در SQL Server به منظور تبدیل مقادیر hex به integer وجود دارند.
اولین تابعی که در این خصوص می تواند به ما کمک کند، تابع CONVERT نام دارد.
در مثالی زیر، یک مقدار هگزادسیمال به integer با استفاده از CONVERT تبدیل می شود.
تابع دوم، تابع CAST نام دارد که برای دریافتی خروجی فوق، می تواند به شما کمک کند تا مقادیر hex را به integer تبدیل کنید.
توجه داشته باشید که Syntax توابع CONVERT و CAST کمی با هم فرق دارد. در CAST، مقداری که باید cast شود، پارامتر اول بوده و در مورد تابع CONVERT، این قضیه بر عکس می باشد.
در مثال زیر، بدون استفاده از هیچ تابعی، تبدیل مقدار هگزادسیمال به عدد صحیح انجام می شود. کافیست مقدار هگزا را به عدد 1 ضرب کنید:
حتی می توانید از تابع FORMAT برای فرمت کردن Result Set استفاده کنید.
و اگر بعد از N مقدار 0 را اضافه کنید، 00 بعد از خروجی هم برداشته می شود:
توجه داشته باشید خروجی تابع فوق بصورت String یا رشته خواهد بود. همچنین توجه داشته باشید که تابع FORMAT فقط دیتاتایپهای عددی و تاریخ و زمان را می پذیرد. بنابراین ، نمی توانیم مقدار هگزادسیمال را مستقیماً به تابع پاس دهیم که در این صورت ارور دریافت خواهید کرد:
اولین تابعی که در این خصوص می تواند به ما کمک کند، تابع CONVERT نام دارد.
در مثالی زیر، یک مقدار هگزادسیمال به integer با استفاده از CONVERT تبدیل می شود.
SELECT CONVERT(INT, 0xfcab) Result;
+----------+
| Result |
|----------|
| 64683 |
+----------+
تابع دوم، تابع CAST نام دارد که برای دریافتی خروجی فوق، می تواند به شما کمک کند تا مقادیر hex را به integer تبدیل کنید.
SELECT CAST(0xfcab AS INT) Result;
+----------+
| Result |
|----------|
| 64683 |
+----------+
توجه داشته باشید که Syntax توابع CONVERT و CAST کمی با هم فرق دارد. در CAST، مقداری که باید cast شود، پارامتر اول بوده و در مورد تابع CONVERT، این قضیه بر عکس می باشد.
در مثال زیر، بدون استفاده از هیچ تابعی، تبدیل مقدار هگزادسیمال به عدد صحیح انجام می شود. کافیست مقدار هگزا را به عدد 1 ضرب کنید:
SELECT 0xfcab * 1 Result;
+----------+
| Result |
|----------|
| 64683 |
+----------+
حتی می توانید از تابع FORMAT برای فرمت کردن Result Set استفاده کنید.
SELECT FORMAT(CAST(0xfcab AS INT), 'N') Result;
+-----------+
| Result |
|-----------|
| 64,683.00 |
+-----------+
و اگر بعد از N مقدار 0 را اضافه کنید، 00 بعد از خروجی هم برداشته می شود:
SELECT FORMAT(CAST(0xfcab AS INT), 'N0') Result;
+-----------+
| Result |
|-----------|
| 64,683 |
+-----------+
توجه داشته باشید خروجی تابع فوق بصورت String یا رشته خواهد بود. همچنین توجه داشته باشید که تابع FORMAT فقط دیتاتایپهای عددی و تاریخ و زمان را می پذیرد. بنابراین ، نمی توانیم مقدار هگزادسیمال را مستقیماً به تابع پاس دهیم که در این صورت ارور دریافت خواهید کرد:
SELECT FORMAT(0xfcab, 'N') Result;
Argument data type varbinary is invalid for argument 1 of format function.
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: