varchar类型转换

CREATE   function   Ip2Float   (@aIp   varchar(30))
RETURNS   float   --将float(8)   改成float  
AS
BEGIN

declare   @ip   varchar(30)
select   @ip=@aIp
declare   @Index   int
declare   @Part   varchar(6)
declare   @Rec   float
select   @Rec=0
select   @Index=CHARINDEX( '. ',@ip)

WHILE   (@Index   >   0)
begin
select   @Part=substring(@ip,1,@Index-1)
select   @Rec=@Rec*1000+cast(@Part   as   float(8))
select   @Ip=substring(@ip,@Index+1,len(@ip)-@Index)
select   @Index=CHARINDEX( '. ',@ip)
-- select   @Index   此句多余
end

select   @Rec=@Rec*1000+cast(@Ip   as   float(8))
return(@Rec)
end

你可能感兴趣的:(varchar)