[转]字符型IP地址转换成数字IP的SQL函数
使用SQL函数可以实现许多的功能,下面为您介绍的是字符型IP地址转换成数字IP的SQL函数示例,供您参考,希望对您学习SQL函数能够有所帮助。 /**//*--调用示例
select dbo.f_IP2Int('192.168.0.11') select dbo.f_IP2Int('12.168.0.1') --*/ CREATE FUNCTION [dbo].[f_IP2Int]( @ip char(15) )RETURNS bigint AS
BEGIN DECLARE @re bigint SET @re=0 SELECT @re=@re+LEFT(@ip,CHARINDEX('.',@ip+'.')-1)*ID
,@ip=STUFF(@ip,1,CHARINDEX('.',@ip+'.'),'') FROM( SELECT ID=CAST(16777216 as bigint) UNION ALL SELECT 65536 UNION ALL SELECT 256 UNION ALL SELECT 1)A RETURN(@re)
END
/**//*--数字 IP 转换成格式化 IP 地址 --邹建 2004.08(引用请保留此信息)--*/ /**//*--调用示例 select dbo.f_Int2IP(3232235531) select dbo.f_Int2IP(212336641) */
CREATE FUNCTION [dbo].[f_Int2IP]( @IP bigint )RETURNS varchar(15) AS BEGIN DECLARE @re varchar(15) SET @re='' SELECT @re=@re+'.'+CAST(@IP/ID as varchar)
,@IP=@IP%ID from( SELECT ID=CAST(16777216 as bigint)
UNION ALL SELECT 65536 UNION ALL SELECT 256 UNION ALL SELECT 1)a RETURN(STUFF(@re,1,1,'')) END