varchar怎么解决?
我要查询的时候还是要转化成整形的阿?
而且是要表示一个范围
譬如说218。80。252。00-218。80。255。255
这个范围
用varchar来查询的时候岂不是很不方便!
bigint不好的,不能表示64位无整形
我要查询的时候还是要转化成整形的阿?
而且是要表示一个范围
譬如说218。80。252。00-218。80。255。255
这个范围
用varchar来查询的时候岂不是很不方便!
bigint不好的,不能表示64位无整形
insert into ipinfo values('192.168.168.0','192.168.168.255')
go
create function num(@num varchar(15))
returns decimal(12,0)
as
begin
declare @a varchar(3),@j int,@b varchar(15)
set @b=''
set @j=1
while(@j<=13)
begin
set @a=substring(@num,@j,charindex('.',@num,1)-1)
set @j=@j+4
if len(@a)=1 set @a = '00' + @a
if len(@a)=2 set @a = '0' + @a
set @b = @b + @a
end
return convert(decimal(12,0),@b)
end
go
select * from ipinfo where dbo.num(end_id)>dbo.num('192.168.168.3') and dbo.num(begin_id)<dbo.num('192.168.168.86')drop table ipinfo
drop function dbo.num
202.95.54.215
202.95 存放一个字段
54.215 存放一个字段有一定算法存入,可以参考动网论坛的算法。
www.aspsky.net