[英]Convert fractional number to Hexadecimal in Oracle
我在數據庫中有一個表,其分數值為 14.65 45 7458.34 34.69 4.7 34
我想將這個小數值轉換為十六進制。
但是 to_hex function 只轉換十進制值 (14) 而不是 (14.65)。
也嘗試使用 to_char- SELECT TO_CHAR(15.33, 'X') FROM DUAL; --->輸出:F
我不想對值進行上限或下限並打印十六進制數。 我要 15.33 --->F.547AE147
將值拆分為 integer 和小數部分,並分別對它們使用TO_CHAR
:
WITH table_name (value) AS (
SELECT 15.33 FROM DUAL UNION ALL
SELECT -15.33 FROM DUAL
)
SELECT value,
CASE WHEN value < 0 THEN '-' END
|| TO_CHAR(TRUNC(ABS(value)), 'fmXXXXXXXXXX')
|| '.'
|| TO_CHAR(
ABS(MOD(value, 1))*TO_NUMBER('FFFFFFFF', 'XXXXXXXX'),
'fm0XXXXXXX'
) AS hex
FROM table_name;
哪些輸出:
價值 十六進制 15.33 F.547AE147 -15.33 -F.547AE147
db<> 在這里擺弄
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.