IP地址转化为数字,charindex ,SUBSTRING
- SET NOCOUNT ON;
- declare @I_PCity table
- (
- IPStart nvarchar(),
- Area nvarchar(),
- CityID int,
- IPID int
- )
- declare @IPStart nvarchar(),
- @diana int, --存放点
- @dianb int,
- @dianc int,
- @liea bigint, -- 存放列
- @lieb bigint,
- @liec bigint,
- @lied bigint,
- @intlon bigint --存放化为的整数
- insert into @I_PCity(IPStart, Area, CityID, IPID ) select IPStart, Area, CityID, IPID from I_IPCity (nolock) where IPID>= and IPStart is not null and IP3 is null
- --
- while( exists(select top * from @I_PCity))
- begin
- set @IPStart= (select top IPStart from @I_PCity );
- set @diana= charindex('.',@IPStart) --第一个点的下标
- set @dianb= charindex('.',@IPStart, @diana + ) --第二个点的下标
- set @dianc= charindex('.',@IPStart, @dianb + ) --第三个点的下标
- set @liea = SUBSTRING(@IPStart,,@diana-) --第一列的值
- set @lieb =SUBSTRING(@IPStart,@diana+,@dianb-@diana- )--第二列的值
- set @liec =SUBSTRING(@IPStart,@dianb+,@dianc-@dianb- )--第三列的值
- set @lied =SUBSTRING(@IPStart,@dianc+, LEN(@IPStart))--第四列的值
- set @intlon= @lied+(@liec*)+(@lieb*)+(@liea*) --拼为整数
- update I_IPCity set IP3 =@intlon where IPID= (select top IPID from @I_PCity)
- delete top() from @I_PCity
- end
返回前台所查到的结果:
- USE [91hurong]
- GO
- /****** Object: StoredProcedure [dbo].[ProIP] Script Date: 08/13/2015 08:40:16 ******/
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- ALTER PROCEDURE [dbo].[ProIP]
- -- Add the parameters for the stored procedure here
- @str varchar()
- AS
- BEGIN
- declare @IPStart nvarchar(), --存放传入的数据
- @diana int, --存放点
- @dianb int,
- @dianc int,
- @liea bigint, -- 存放列
- @lieb bigint,
- @liec bigint,
- @lied bigint,
- @intlon bigint --存放化为的整数
- set @IPStart= @str; --传入的IP'1.11.6.6'
- -- set @IPStart= '1.11.6.6';
- set @diana= charindex('.',@IPStart) --第一个点的下标
- set @dianb= charindex('.',@IPStart, @diana + ) --第二个点的下标
- set @dianc= charindex('.',@IPStart, @dianb + ) --第三个点的下标
- set @liea = SUBSTRING(@IPStart,,@diana-) --第一列的值
- set @lieb =SUBSTRING(@IPStart,@diana+,@dianb-@diana- )--第二列的值
- set @liec =SUBSTRING(@IPStart,@dianb+,@dianc-@dianb- )--第三列的值
- set @lied =SUBSTRING(@IPStart,@dianc+, LEN(@IPStart))--第四列的值
- set @intlon= @lied+(@liec*)+(@lieb*)+(@liea*) --拼为整数
- declare @inta bigint
- set @inta=(select top IP3 from I_IPCity where IP3>@intlon and IPStart is not null and IPID is not null and IP3 is not null order by IP3 asc)
- select top * from I_IPCity where IP3<@inta and IPStart is not null and IPID is not null and IP3 is not null order by IP3 desc --返回'61.177.117.6'在表中对应的数据
END
exec ProIP '61.177.117.6'
说明:
- 'Arg.ea' 对应位置
- :
- charindex('.','Arg.ea') > --如果大于零,则表示字符串Area中含有字符串CityName; 此例为true
- charindex('.','Arg.ea', ) -- 从第二个位置后,也就是从 字母'r'后开始找,先判断 ‘g’是否为‘.’ ,为否;继续判断‘.’是否为‘.’,此表达式为true
- SUBSTRING('Arg.ea',,) --截取 字符串 'Arg.ea'中 第一个位置到第二个位置 ;也就是‘Ar’
IP地址转化为数字,charindex ,SUBSTRING的更多相关文章
- [转]字符型IP地址转换成数字IP的SQL函数
使用SQL函数可以实现许多的功能,下面为您介绍的是字符型IP地址转换成数字IP的SQL函数示例,供您参考,希望对您学习SQL函数能够有所帮助. /**//*--调用示例 sele ...
- 【Go】IP地址转换:数字与字符串之间高效转换
转载:https://blog.thinkeridea.com/201903/go/ip2long.html IP 地址库中 IP 地址的保存格式一般有两种,一种是点分十进制形式(192.168.1. ...
- 将IP地址转化为整数
$ip = 'IP地址';echo $intip = sprintf('%u',ip2long($ip)); //转换为无符号整型echo long2ip($intip);//将整型转换为ip
- ip地址转化代码实例
/*@author: lgh@ * * */ #include <stdio.h> #include <string.h> #include <unistd.h> ...
- 数字转IP地址函数
--------------------------------------------------------------------- -- Author : htl258(Tony) -- Da ...
- (C#)IP地址与数字地址相互转换
站长网IP查询地址:http://tool.chinaz.com/ip/ 和ip地址转换为数字的工具地址:http://www.msxindl.com/tools/ip/ip_num.asp 可以看到 ...
- 域名转化到IP地址的实现
在linux中,有一些函数可以实现主机名和地址的转化,最常见的有gethostbyname().gethostbyaddr()等,它们都可以实现IPv4和IPv6的地址和主机名之间的转化.其中geth ...
- IP地址与数字地址相互转换
/// <summary> /// IP地址转换成数字 /// </summary> /// <param name="addr">IP地址&l ...
- C# 获取本机IP地址以及转换字符串
/// <summary> /// IP地址转化 /// </summary> /// <param name="ipaddr">整型的IP地址 ...
随机推荐
- springdatajpa使用informix数据库出现no such column 异常的问题
本博客属原创,转载请注明出处 问题描述: 环境: spring data jpa版本4.0.3 informix驱动版本3.50.JC9 程序结构 jpa配置文件对应的jdbc配置 dao层继承jpa ...
- SqlServer与MySql语法比较
1.复制表(包括表结构.表数据) SqlServer: Select * into user_copy from user MySql: CREATE TABLE user_copy LIKE use ...
- 编译OpenCV遇到Qmake问题
1.Ubuntu安装OpenCv,出现:qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or ...
- Windows 10 常用软件推荐
QQ/TIM 大众的通讯工具,十多年之后的今天,依然是国内常驻用户第一的通讯工具 截图.远程桌面.视频会议.文件传送依旧是非常好用 TIM 算是轻聊版的升级版 微信 for Windows 近年新兴的 ...
- 基于libVLC的视频播放器
本文来自于:http://blog.csdn.net/leixiaohua1020/article/details/42363079 最简单的基于libVLC的例子:最简单的基于libVLC的视频播放 ...
- Linux系统编程@进程管理(一)
课程目标: 构建一个基于主机系统的多客户即时通信/聊天室项目 涉及的理论知识 进程控制:僵尸进程/孤儿进程.进程控制.守护进程... 进程间通信:管道.命名管道.信号... 多线程编程: 锁.信号量. ...
- day27-2 pandas模块
目录 pandas Series(了解) DataFrame 内置方法 处理缺失值 合并数据 取值 把表格传入excel文件中 把表格从excel中取出来 高级(了解) pandas 处理表格等文件/ ...
- 阿里云API网关!
API 网关(API Gateway)提供高性能.高可用的 API 托管服务,帮助用户对外开放其部署在 ECS.容器服务等阿里云产品上的应用,提供完整的 API 发布.管理.维护生命周期管理.用户只需 ...
- iview datepicker 选择的时间少一天
使用iview的datepicker时间选择器发现获取的value值是比实际要少一天,严格来说应该是时间格式不一样,datepicker获取的时间是UTC时间格式,也就是:yyyy-MM-ddTHH: ...
- 训练1-L
n个人一起排队接水,第i个人需要ai的时间来接水. 1 <= n <= 1000 1 <= a,i<= 1000 同时只能有一个人接水,正在接水的人和没有接水的人都需要等待. ...