zoukankan      html  css  js  c++  java
  • 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 % 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)

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

  • 相关阅读:
    springboot整合mybatis 异常 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
    报时助手
    Huffman树费用
    动画效果
    工具和其他操作
    使用筛选器获取元素
    DOM操作
    属性和样式操作
    jQuery基础
    选择器
  • 原文地址:https://www.cnblogs.com/feiyi/p/4274149.html
Copyright © 2011-2022 走看看