首页 > 数据库 > SQL Server > 正文

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

2024-08-31 00:54:49
字体:
来源:转载
供稿:网友
SQL SERVER 自定义函数 整数转成指定长度的16进制 转换成指定长度的16进制 不足补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 % 1610     if @Mods > 9 11       set @res = Char(Ascii('A')+@Mods-10)+@res12     else 13       set @res = Cast(@Mods as varchar(4)) + @res14     set @Num = @Num/1615   end16   set @Length=@HxLength-DataLength(@res)17   if(DataLength(@res)<@HxLength)18   BEGIN19       while @Length<>020       begin21       SET @res='0'+@res22       set @Length=@Length-123       end24   END25   return @res26 end
View Code

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

就得到:这样就符合了要求!


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表