原创:钟林大,来源www.softboss.com
实数的经纬度要转换成度分秒,计算方法是取整得到度,其小数部分乘以60,其结果取整得到分,其小数部分再乘以60取整得到秒。
在本次转换中除了用到游标进行逐条数据计算外,还用到了一些字符串转换,是比较好的SQL数据操作的例子。
--使用游标进行计算经纬度
declare @lgtd real
declare @lttd real
declare @STCD real
declare cursor1 cursor for --定义游标cursor1
select 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行,获取的数据放入之前定义的变量中
end
close cursor1 --关闭游标
deallocate cursor1