SQL十进制和十六进制相互转换
CREATE FUNCTION ufn_ConvertInt2Hex ( @Num BIGINT )
RETURNS VARCHAR(500)
AS
BEGIN
/**************************************
-- 功能:十进制转十六进制
-- 作者:GarsonZhang
-- 时间:2016年5月28日13:26:55
-- 测试:
PRINT dbo.ufn_ConvertInt2Hex(50)
**************************************/ DECLARE @Result VARCHAR(500)
SET @Result = ''
WHILE ( @Num > 0 )
BEGIN
SET @Result = SUBSTRING('0123456789ABCDEF', @Num % 16 + 1, 1)
+ @Result
SET @Num = @Num / 16
END
RETURN @Result
END
GO CREATE FUNCTION ufn_ConvertHex2Int ( @HexString VARCHAR(16) )
RETURNS BIGINT
AS /**************************************
-- 功能:十六进制转十进制
-- 作者:GarsonZhang
-- 时间:2016年5月28日13:30:24
-- 测试:
PRINT dbo.ufn_ConvertInt2Hex(50)
**************************************/
BEGIN
DECLARE @Result BIGINT DECLARE @i INT ,
@len INT DECLARE @power BIGINT
SET @power = 16 SELECT @i = 0 ,
@Result = 0 ,
@HexString = RTRIM(LTRIM(UPPER(@HexString))) SET @len = LEN(@HexString) IF ( @len = 16 )
BEGIN
IF ( ASCII(SUBSTRING(@HexString, 1, 1)) > 55 )
BEGIN
-- RaisError('超出数据运算范围', 1, 16)
RETURN @Result
END
END
-------------------------------------------------------
WHILE ( @i < @len )
BEGIN
IF ( ( SUBSTRING(@HexString, @len - @i, 1) NOT BETWEEN '' AND '' )
AND ( SUBSTRING(@HexString, @len - @i, 1) NOT BETWEEN 'A' AND 'F' )
)
BEGIN
SET @Result = 0
BREAK;
END
---------------------------------------- SET @Result = @Result + ( CHARINDEX(SUBSTRING(@HexString,
@len - @i, 1),
'0123456789ABCDEF') - 1 )
* CAST(POWER(@power, @i) AS BIGINT)
SET @i = @i + 1
END
----------------------------------------------
RETURN @Result
END
SQL十进制和十六进制相互转换的更多相关文章
- Oracle中的二进制、八进制、十进制、十六进制相互转换函数
原文:Oracle中的二进制.八进制.十进制.十六进制相互转换函数 Oracle中的二进制.八进制.十进制.十六进制相互转换函数 今天在网上看到一篇关于在oracle中对各种进制数进行转换的帖子, ...
- 3、颜色的字符串、十进制、十六进制相互转换(color convert between dec、hex and string )
int color_int=***; 1.(十进制整数)转换成(十六进制的字符串) String color_hex = String.format("#%06X", (0xFFF ...
- Int32 最大的数值是多少???(附十进制十六进制相互转换且包含正负数的java代码)
正数转二进制很简单,转十六进制也很简单. 那么负数的情况下呢?在计算机中无法识别你给的符号“+”,"-",计算机只认识0和1 那么在二进制中如何表示负数. 先简单介绍一下负数如何转 ...
- Java 二进制,八进制,十进制,十六进制转换
A.十进制转换其他 十进制转成二进制 Integer.toBinaryString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成十六进制: ...
- ORACLE十进制与十六进制的转换
十进制与十六进制的转换 十进制-->十六进制 select to_char(100,'XX') from dual; 十六进制-->十进制select to_number('7D','XX ...
- C# 十进制与十六进制互转
1.从十六进制转换为十进制 /// <summary> /// 十六进制转换到十进制 /// </summary> /// <param name="hex&q ...
- C# 二进制,十进制,十六进制
//十进制转二进制 Console.WriteLine(Convert.ToString(69, 2)); //十进制转八进制 Console.WriteLine(Convert.ToString(6 ...
- C# 十进制和十六进制转换
转至:http://www.cnblogs.com/fwind/archive/2012/04/13/2445380.html 在C#中,十进制和十六进制转换非常简单,方法如下: 十进制转为十六进制: ...
- Java中二进制、十进制、十六进制及ASCII码与String及字节数组与十六进制之间的转换
public class DigitalTrans { /** * 数字字符串转ASCII码字符串 * * @param String * 字符串 * @return ASCII字符串 */ publ ...
随机推荐
- Debian下配置网络的方法
1.网络配置 配置网卡修改 /etc/network/interfaces 添加如下 # #号后面是备注,不要添加哦! auto eth0 #开机自动激活 iface eth0 inte static ...
- c# 操作xml题目
download! 1.新建一个文本文件,命名为:projects.txt. 2.将后缀名改为projects.xml. 3.用记事本编辑该文件.使用utf-8编码.内容如下: <?xml v ...
- sql如何将同个字段不同值打印在一行
group_concat(distinct(img)) group by id通过id分组把img的值打印在一行group_concat()通常和group by一起使用,功能是把某个字段的值打印在一 ...
- FireDac 与数据库连接时字符集及对应的字段类型问题
近日在一个过程调用时发生一个奇怪现象, 异常返回意思是说, 数据的长度是[6], 而字段定义的长度是[3]. 分析后认为: 调用过程你不涉及到对返回数据集的字段手动定义问题, 出现这个问题应是两边 ...
- 160919、使用AOP与注解记录Java日志
有些时候,我想要把每个运行过的方法接收到的参数.返回值和执行时间等信息记录(通过slf4j 和 log4j)下来.在AspectJ.jcabi-aspects和Java注解的帮助下我实现了这个想法. ...
- ios app的真机调试与发布配置
1.打开应用程序—>[钥匙串访问]—>[证书助理]—>[从证书办法机构请求证书] 2.在[用户电子邮件地址]填入apple账户用的邮箱,选择[存储到磁盘],点击[继续],会在 ...
- textarea 在浏览器中禁用拖动和固定大小
HTML 标签 textarea 在大部分浏览器中只要指定行(rows)和列(cols)属性,就可以规定 textarea 的尺寸,大小就不会改变,不过更好的办法是使用 CSS 的 height 和 ...
- 用C#.NET编写软件注册机
验证注册码是保护软件产品产权的常用手段.一般过程如下, 1. 软件发行者收集用户特有的信息: 2. 根据用户特有的信息,使用注册机生成注册码并把注册码发给客户: 3. 向软件导入注册码,由软件自 ...
- Unix/Linux编程实践教程(一:进程、管道)
execvp在程序中启动新程序: 用fork创建新进程: forkdemo2代码: 测试fork的时候参考<Linux权威指南>阅读笔记(3) 使用了patch: [root@local ...
- 一个很不错的bash脚本编写教程
转自 http://blog.chinaunix.net/uid-20328094-id-95121.html 一个很不错的bash脚本编写教程,至少没接触过BASH的也能看懂! 建立一个脚本 Lin ...