• 全部
  • 基础类
  • 应用实例
  • 新技术前沿

sqlserver 中如何实现vbscript中的hex()函数.

yuemb369 2008-03-17 10:24:11
sqlserver 中如何实现vbscript中的hex()函数.并且转换为字符串
...全文
146 1 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
windocean007 2009-09-08
谢谢各位,又学习了…………
回复
yuemb369 2008-03-17
这个是我想要的答案,谢谢.
我的是在sql2005中用的,谢谢邹兄,谢谢各位.

[Quote=引用 3 楼 pt1314917 的回复:]
SQL code
--十进制转十六进制
Create function hex(@i bigint)
returns varchar(15)
begin
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
set…
[/Quote]
回复
chuifengde 2008-03-17
DECLARE @s VARCHAR(20)
DECLARE @g int
SET @s='dfd'
SET @g=2343
DECLARE @y VARBINARY(16)
DECLARE @z VARBINARY(16)
SET @y= CONVERT(VARBINARY(16),@s)--转成hex
SET @z= CONVERT(VARBINARY(16),@g)--转成hex

SELECT master.dbo.fn_varbintohexstr(@y)--转成字符串
SELECT master.dbo.fn_varbintohexstr(@z)--转成字符串

--result
/*
--------------------------------------------------
0x646664

(所影响的行数为 1 行)


--------------------------------------------------
0x00000927

(所影响的行数为 1 行)

*/
回复
yuemb369 2008-03-17
vb中的实现:输入参数s为字符
Vb:

Function App(s)
Dim i
Dim s1
Dim n
s1 = ""
s1 = s1 & "00" & Hex(Asc(s))
App = s1
End Function
回复
zjcxc 元老 2008-03-17
结果: 0x81896C8F6263847670656E63

注: 不适用于 sql 2005/2008
回复
zjcxc 元老 2008-03-17
DECLARE
@binary varbinary(255),
@str_return varchar(255)

SELECT
@binary = CONVERT(varbinary(255),
N'要转换的数据')

EXEC master.dbo.xp_varbintohexstr @binary, @str_return OUTPUT
SELECT
结果 = @str_return

回复
pt1314917 2008-03-17

--十进制转十六进制
Create function hex(@i bigint)
returns varchar(15)
begin
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
set @i=@i/16
end

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

return @r
end


--调用函数:
select dbo.hex(459) --结果:1CB
select dbo.hex(12) --结果:C


回复
青锋-SS 2008-03-17
有些不明白楼主的意思
回复
青锋-SS 2008-03-17
select cast(0x4f as int)
---------
79
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-03-17 10:24
社区公告
暂无公告