SQL整型转换为点分IP
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER FUNCTION [dbo].[GetIntToIP](@ip BIGINT)
RETURNS NVARCHAR(50)
AS
BEGIN
DECLARE @StrResult NVARCHAR(50) --返回的结果
DECLARE @IPIndex BIGINT --转换后的IP地址
DECLARE @ZhiShu INT --指数
DECLARE @ZhiLing BIGINT --高八位置0
DECLARE @num INT --循环的次数
SET @StrResult=''
SET @IPIndex=0
SET @ZhiShu=0
SET @ZhiLing=0
SET @num=1
SET @ZhiLing=1
WHILE (@num<5)
BEGIN
SET @ZhiShu=32-8*@num
SET @IPIndex=@ip
WHILE (@ZhiShu>0)
BEGIN
SET @IPIndex=@IPIndex/2
--高八位置0
SET @ZhiLing=@ZhiLing*2
SET @ZhiShu=@ZhiShu-1
END
IF (@num<>4)
SET @ip=@ip%@ZhiLing
SET @StrResult=@StrResult+CONVERT (VARCHAR(40),@IPIndex)
IF (@num<>4)
SET @StrResult=@StrResult+'.'
SET @num=@num+1
SET @ZhiLing=1
END
RETURN @StrResult
END