如何仅用SQL select查询语句,将十进制整数转换成16进制整数或字符串?

wve 2008-07-22 04:21:54
对于MySQL数据库

有一个域的数值是10进制整数,如何仅用select 语句将这个查询结果以十六进制的方式显示出来?
...全文
909 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
je_ck 2008-07-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 happyflystone 的回复:]
我看难

看看这个函数

/*--数字转换成16进制

--邹建 2004.04(引用请保留此信息)--*/

/*--调用示例

--调用
select dbo.f_int2hex(123)
--*/
create function f_int2hex(@num int)
returns varchar(100)
as
begin
declare @re varchar(100)
set @re=''
while @num>0
select @re=substring('0123456789ABCDEF',@num%16+1,1)+@re
,@num=@num/16
return(@re)
end
go
[/Quote]
一品梅 2008-07-22
  • 打赏
  • 举报
回复
Float [16-digit Scientific] 
CONVERT(VARCHAR, Fld, 2)
wve 2008-07-22
  • 打赏
  • 举报
回复
解决了,谢谢各位:)
zhang_yugang 2008-07-22
  • 打赏
  • 举报
回复
关注:
-狙击手- 2008-07-22
  • 打赏
  • 举报
回复
我看难

看看这个函数

/*--数字转换成16进制

--邹建 2004.04(引用请保留此信息)--*/

/*--调用示例

--调用
select dbo.f_int2hex(123)
--*/
create function f_int2hex(@num int)
returns varchar(100)
as
begin
declare @re varchar(100)
set @re=''
while @num>0
select @re=substring('0123456789ABCDEF',@num%16+1,1)+@re
,@num=@num/16
return(@re)
end
go


select number16,substring(number16,1,1) a,substring(number16,2,1) b, substring(number16,3,1) c, substring(number16,4,1) d, substring(number16,5,1) e,substring(number16,6,1) f, substring(number16,7,1) g, substring(number16,8,1) h, convert(decimal(10,0),isnull(replace(replace(replace(replace(replace(replace(substring(number16,1,1),'A','10'),'B','11'),'C','12'),'D','13'),'E','14'),'F','15'),0)) * power(16,7) + convert(decimal(10,0),isnull(replace(replace(replace(replace(replace(replace(substring(number16,2,1),'A','10'),'B','11'),'C','12'),'D','13'),'E','14'),'F','15'),0)) * power(16,6) + convert(decimal(10,0),isnull(replace(replace(replace(replace(replace(replace(substring(number16,3,1),'A','10'),'B','11'),'C','12'),'D','13'),'E','14'),'F','15'),0)) * power(16,5) + convert(decimal(10,0),isnull(replace(replace(replace(replace(replace(replace(substring(number16,4,1),'A','10'),'B','11'),'C','12'),'D','13'),'E','14'),'F','15'),0)) * power(16,4) + convert(decimal(10,0),isnull(replace(replace(replace(replace(replace(replace(substring(number16,5,1),'A','10'),'B','11'),'C','12'),'D','13'),'E','14'),'F','15'),0)) * power(16,3) + convert(decimal(10,0),isnull(replace(replace(replace(replace(replace(replace(substring(number16,6,1),'A','10'),'B','11'),'C','12'),'D','13'),'E','14'),'F','15'),0)) * power(16,2) + convert(decimal(10,0),isnull(replace(replace(replace(replace(replace(replace(substring(number16,7,1),'A','10'),'B','11'),'C','12'),'D','13'),'E','14'),'F','15'),0)) * power(16,1) + convert(decimal(10,0),isnull(replace(replace(replace(replace(replace(replace(substring(number16,8,1),'A','10'),'B','11'),'C','12'),'D','13'),'E','14'),'F','15'),0)) * power(16,0) from test_16to10 where len(number16)>6 -- create table test_16to10(number16 varchar(10) not null); --ex: number16 value is:'D95B7D3C'

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧