
SQL中如何将一个十进制数转换成16进制数,然后只显示16进制数的整数部分
例如selectCONVERT(varbinary,17)得到的结果是0x00000011,但是我只需要显示11就行了,求教各位高手,小弟比较着急。...
例如 select CONVERT(varbinary,17) 得到的结果是0x00000011,但是我只需要显示11就行了,求教各位高手,小弟比较着急。
展开
1个回答
展开全部
select replace(ltrim(replace(replace((
master.dbo.fn_varbintohexstr(
cast(
CONVERT(bigint, col1) as binary ))
COLLATE Latin1_General_CI_AS_KS_WS ),0,' '),'x',' ')),' ','0')
from table
更多追问追答
追问
请问
replace((
master.dbo.fn_varbintohexstr(cast(CONVERT(bigint, col1) as binary ))
COLLATE Latin1_General_CI_AS_KS_WS ),0,' ')
这段我没有看明白。
这个COLLATE 是怎么用的?
追答
吧0转换为空格
然后吧x转换为空格
然后用ltrim删除空格
然后吧剩余的空格转换为0
其余的函数请百度,讲解比较慢发
COLLATE Latin1_General_CI_AS_KS_WS这个删了也没关系不影响的
select replace(ltrim(replace(replace((
master.dbo.fn_varbintohexstr(
CONVERT(bigint, col)) ),0,' '),'x',' ')),' ','0')
from table
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询