关于数据转换高难度问题
就是一个字符串如何转换10进制的数,但字符串实际上是个16进制的数!
可能不太清楚,我举个例子吧,如'0c99',我现在要转化为 3255
用convert 应该这样写吧,SELECT CONVERT(INT,0x0c99)但是有引号的字符放进去就不对了!!
谢谢帮忙好吗?
问题点数:50、回复次数:4Top
1 楼li_d_s(鄙视那些不懂Java却跑来乱骂的人,.NET没啥了不起)回复于 2006-03-03 09:44:29 得分 0
联机帮助上写的是16进制数用binary来存储
USE pubs
CREATE TABLE mycustomertable
(
data_value binary
)
INSERT mycustomertable (data_value)
VALUES (0x4F)
select convert(int, data_value) from mycustomertable是可以得到结果的Top
2 楼wgsasd311(自强不息)回复于 2006-03-03 10:06:02 得分 0
create function f_HexToDec(@hex varchar(20))
returns bigint
as
begin
declare @re bigint,@i int,@j int
set @re=0
set @i=1
while @i<=len(@hex)
begin
set @j=case
when substring(@hex,@i,1) in('a','A') then 10
when substring(@hex,@i,1) in('b','B') then 11
when substring(@hex,@i,1) in('c','C') then 12
when substring(@hex,@i,1) in('d' ,'D') then 13
when substring(@hex,@i,1) in('e','E') then 14
when substring(@hex,@i,1) in('f' ,'F') then 15
when substring(@hex,@i,1) like '[0-9]' then cast(substring(@hex,@i,1) as int)
else 0 end
set @re=@re+@j*power(16,len(@hex)-@i)
set @i=@i+1
end
return @re
end
go
select dbo.f_HexToDec('0c99')
drop function dbo.f_hextodecTop
3 楼lsqkeke(可可)回复于 2006-03-03 10:13:38 得分 0
学习 :)Top
4 楼wood111(木头一根)回复于 2006-03-03 10:43:22 得分 0
学习,顶一下Top




