邹老大,你那个IP转换数字函数有点毛病!

swazn_yj 2007-12-03 09:26:11
在转换如:219.150.150.150这样的IP时会出现最后一位缺失问题,转换成数字没问题,从数字往回转的时候就变成:219.150.150.15了,最后那个0不见了。
 if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N'[dbo].[f_Int2IP]')   and   xtype   in   (N'FN',   N'IF',   N'TF'))   
drop function [dbo].[f_Int2IP]
GO

/**//*--数字 IP 转换成格式化 IP 地址

--邹建 2004.08(引用请保留此信息)--*/

/**//*--调用示例

select dbo.f_Int2IP(3232235531)
select dbo.f_Int2IP(212336641)
--*/
CREATE FUNCTION 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

DECLARE @re varchar(15)
修改成DECLARE @re varchar(16)
就没毛病了。
...全文
134 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoku 2007-12-03
  • 打赏
  • 举报
回复
不过题目起得有些...
xiaoku 2007-12-03
  • 打赏
  • 举报
回复
hehe...试了试,确实如此哦...
楼主真仔细...
swazn_yj 2007-12-03
  • 打赏
  • 举报
回复
没人理我...

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧