写着玩玩
-- 十六进制转十进制
Create function hextoint(@h varchar(8))
returns bigint
begin
-- select dbo.hextoint(1705)
declare @r bigint
set @r=0
declare @i bigint
set @i=1
while @i<=len(@h)
begin
set @r=@r+
convert(int,
(
case
when substring(@h,@i,1)<='9' then substring(@h,@i,1)
when substring(@h,@i,1)<='A' then '10'
when substring(@h,@i,1)<='B' then '11'
when substring(@h,@i,1)<='C' then '12'
when substring(@h,@i,1)<='D' then '13'
when substring(@h,@i,1)<='E' then '14'
when substring(@h,@i,1)<='F' then '15'
end
))
*power(16,len(@h)-@i)
set @i=@i+1
end
return @r
end
----------
--十进制转十六进制
Create function inttohex(@i bigint)
returns varchar(15)
begin
--declare @i bigint
--set @i=3063457542
declare @r varchar(10)
set @r=''
while @i/16>0
begin
set @r=
(case
when (@i % 16)<=9 then convert(varchar(1),@i % 16)
when (@i % 16)=10 then 'A'
when (@i % 16)=11 then 'B'
when (@i % 16)=12 then 'C'
when (@i % 16)=13 then 'D'
when (@i % 16)=14 then 'E'
when (@i % 16)=15 then 'F'
end)
+@r
--select @r,@i
set @i=@i/16
end
--select @r,@i
if @i>0
set @r=(case
when (@i % 16)<=9 then convert(varchar(1),@i % 16)
when (@i % 16)=10 then 'A'
when (@i % 16)=11 then 'B'
when (@i % 16)=12 then 'C'
when (@i % 16)=13 then 'D'
when (@i % 16)=14 then 'E'
when (@i % 16)=15 then 'F'
end)+@r
-- select @r
return @r
end
相关文章
- SQL SERVER中强制类型转换cast和convert的区别
- SQL Server中的RAND函数的介绍和区间随机数值函数的实现
- 汇编语言程序设计-十进制转换为十六进制的程序实现
- PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析
- Sql Server十六进制转换为十进制
- SQL SERVER中强制类型转换cast和convert的区别详解
- SQL Server简单实现数据的日报和月报功能
- SQL Server本地时间和UTC时间的相互转换实现代码
- ms sql server中实现的unix时间戳函数(含生成和格式化,可以和mysql兼容)
- 在SQL Server 中,如何实现DBF文件和SQL Server表之间的导入或者导出?