在SQL2000中使用游标进行计算经纬度(原创)(100)

  • 主题发起人 主题发起人 stepwin
  • 开始时间 开始时间
S

stepwin

Unregistered / Unconfirmed
GUEST, unregistred user!
原创:钟林大,来源www.softboss.com实数的经纬度要转换成度分秒,计算方法是取整得到度,其小数部分乘以60,其结果取整得到分,其小数部分再乘以60取整得到秒。在本次转换中除了用到游标进行逐条数据计算外,还用到了一些字符串转换,是比较好的SQL数据操作的例子。 --使用游标进行计算经纬度declare @lgtd realdeclare @lttd realdeclare @STCD realdeclare cursor1 cursor for --定义游标cursor1select STCD,LGTD,LTTD from refresh_qx1 --使用游标的对象(跟据需要填入select文)open cursor1 --打开游标fetch next from cursor1 into @STCD,@lgtd,@lttd --将游标向下移1行,获取的数据放入之前定义的变量中while @@fetch_status=0 --判断是否成功获取数据begin select @lgtd=floor(@lgtd)*10000+floor((@lgtd-floor(@lgtd))*60)*100+floor(((@lgtd-floor(@lgtd))*60 -floor((@lgtd-floor(@lgtd))*60))*60) select @lttd=floor(@lttd)*10000+floor((@lttd-floor(@lttd))*60)*100+floor(((@lttd-floor(@lttd))*60 -floor((@lttd-floor(@lttd))*60))*60) update st_stbprp_b set LGTD=str (@lgtd, 7),LTTD=str (@lttd, 6) where STCD=@STCD and admauth='广东省气象' --进行相应处理(跟据需要填入SQL文) fetch next from cursor1 into @STCD,@lgtd,@lttd --将游标向下移1行,获取的数据放入之前定义的变量中endclose cursor1 --关闭游标deallocate cursor1
 
后退
顶部