首页 > 数据库技术 > 详细

SQL SERVER 自定义函数 整数转成指定长度的16进制 转换成指定长度的16进制 不足补0

时间:2015-02-05 11:06:56      阅读:341      评论:0      收藏:0      [点我收藏+]

最近做项目扩展的时候,遇到问题就是将整型转换成指定长度的16进制

刚开始就是直接使用 cast(12 as varbinary(4))但是发现这个不能解决我的问题

所以就上网搜了一下,然后改了改,下面就是函数:

技术分享
 1 Create Function IntToHexLength(@Num int,@HxLength int)
 2 returns varchar(16)
 3 as
 4 begin
 5   declare @Mods int,@res varchar(16),@Length int
 6   set @res=‘‘
 7   while @Num <> 0 
 8   begin
 9     set @Mods =@Num % 16
10     if @Mods > 9 
11       set @res = Char(Ascii(A)+@Mods-10)+@res
12     else 
13       set @res = Cast(@Mods as varchar(4)) + @res
14     set @Num = @Num/16
15   end
16   set @Length=@HxLength-DataLength(@res)
17   if(DataLength(@res)<@HxLength)
18   BEGIN
19       while @Length<>0
20       begin
21       SET @res=0+@res
22       set @Length=@Length-1
23       end
24   END
25   return @res
26 end
View Code


然后用select dbo.IntToHexLength(15,4)

就得到:技术分享这样就符合了要求!

 

SQL SERVER 自定义函数 整数转成指定长度的16进制 转换成指定长度的16进制 不足补0

原文:http://www.cnblogs.com/feiyi/p/4274149.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!